Fast creation of vector [0 0 1 1 2 2 3 3... n n]
7 views (last 30 days)
Show older comments
Hi all,
like mentioned in the title, is there a fast way of creating a vector with repeating digits?
Thanks!
Simon
0 Comments
Accepted Answer
per isakson
on 30 Jun 2014
Edited: per isakson
on 30 Jun 2014
Test
>> reshape( cat( 1, [0:n], [0:n] ), 1, [] )
ans =
0 0 1 1 2 2 3 3 4 4 5 5
and
>> reshape( repmat( [0:n], 2,1 ), 1, [] )
More Answers (4)
Jos (10584)
on 30 Jun 2014
n = 10 % max value
k = 3 % number of repetitions
V = floor((0:k*(n+1)-1)/k)
3 Comments
Jos (10584)
on 1 Jul 2014
Reshaping does not take a lot of time. Is it also faster for larger values of k?
per isakson
on 1 Jul 2014
Edited: per isakson
on 3 Jul 2014
Is this solution immune to floating point errors?
Danilo NASCIMENTO
on 30 Jun 2014
V=zeros(1,20);
k=0;
i=1;
while i<20
V(i)=k;
V(i+1)=k;
k=k+1;
i=i+2;
end
V
0 Comments
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!