2017-08-16 98 views
2

我需要用另一个较小的矢量的元素填充矢量。所以说,我需要填充的矢量长度为十的,目前全部为零,即使用较小的矢量在Matlab中填充矢量

vector = [0,0,0,0,0,0,0,0,0,0] 

现在假设我已经定义了一个矢量

p = [1, 2, 3, 4, 5] 

我怎么能填充“矢量”与数组“p”,结果是[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]?请记住,我希望“向量”中的其他职位保持不变。我已经尝试使用repmat(p, length(p)),但最终给了我一些形式[1,2,3,4,5,1,2,3,4,5]。谢谢!

+1

我建议[本文档](https://www.mathworks.com/help/matlab/math/matrix-indexing.html)。 – gnovice

回答

5

尝试的vector slicingconcatenation的组合:

vector = cat(1, p, vector(5:)) 

这是更快:

vector(1:5) = p 

更一般地,

vector(1:numel(p)) = p 
+2

第一个选项不正确。第二个选项是执行此操作的标准方法。 – gnovice

+2

这里的第二个选择是要走的路。对于p的不同大小,它可以进一步推广,就像这个vector(1:numel(p))= p; – informaton