Octave / Matlab: Extend a vector making it repeat itself?
55,123
Solution 1
The function you're looking for is repmat()
.
v10 = repmat(v, 1, 5)
Solution 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))
Author by
Tom
Updated on July 08, 2022Comments
-
Tom almost 2 years
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]
-
EIIPII over 10 yearslink to octave documentation: http://www.gnu.org/software/octave/doc/interpreter/Special-Utility-Matrices.html#Special-Utility-Matrices
-
Cris Luengo over 2 yearsPlease don’t duplicate answers. Instead, leave a comment under the question pointing to this answer. Also, as per my comment there from 3 years ago, this method was no longer faster then.