Octave / Matlab:扩展一个向量使其重复的向量?

时间:2010-03-17 04:08:41

标签: matlab vector octave

有没有办法通过让矢量重复来扩展矢量?

>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl

然后v10将是:

>v10
     1 2 1 2 1 2 1 2 1 2

这应该适用于一般情况,而不仅仅适用于[1 2]

2 个答案:

答案 0 :(得分:136)

您正在寻找的功能是repmat()

v10 = repmat(v, 1, 5)

答案 1 :(得分:6)

如果您知道要在哪个方向展开矢量,显然可以使用repmat。

但是,如果你想要一个总是在最长方向上重复向量的通用解决方案,那么repmat和indexing的组合应该可以解决这个问题:

 v10=v(repmat(1:length(v),1,5))