首页 > 解决方案 > 如何将第二个向量合并到第一个向量,但从预定义的不同位置,而不是从延续?

问题描述

假设我初始化了两个向量,

x=[1 2 3 4 5]';
y=[6 7 8 9 10]';

都表示列矩阵或向量。现在,

z=[x;y];

z向量将是两者的组合,采用类似的列格式。y向量将x通过这种方法延续到向量。

y但是,如果我想从某个给定位置继续,应该采用什么方法,将中间的剩余值留为空白。例如,我希望y从第 8 位继续获得如下输出z:-

1
2
3
4
5
NaN
NaN
6
7
8
9
10

标签: arraysmatlab

解决方案


NaN只需计算,使用所需位置和元素数量需要多少个空格 ( ) x,然后组合输出z

% Input
x = [1 2 3 4 5]'
y = [6 7 8 9 10]'

% Position
pos = 8;

% Add some code for checking numel(x) >= pos here...

% Output
z = [x; NaN(pos-numel(x)-1, 1); y]

x =
   1
   2
   3
   4
   5

y =
    6
    7
    8
    9
   10

z =
     1
     2
     3
     4
     5
   NaN
   NaN
     6
     7
     8
     9
    10

嗯,经过一些编辑,我意识到,评论就足够了......


推荐阅读