Octave / Matlab: Extend a vector making it repeat itself?

房东的猫 提交于 2019-12-27 10:32:38

问题


Is there a way to extend a vector by making it repeat itself?

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

Then v10 would be:

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

This should work for the general case, not just for [1 2]


回答1:


The function you're looking for is repmat().

v10 = repmat(v, 1, 5)



回答2:


Obviously repmat is the way to go if you know in which direction you want to expand the vector.

However, if you want a general solution that always repeats the vector in the longest direction, this combination of repmat and indexing should do the trick:

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


来源:https://stackoverflow.com/questions/2459851/octave-matlab-extend-a-vector-making-it-repeat-itself

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!