Fast creation of vector [0 0 1 1 2 2 3 3... n n]
Show older comments
Hi all,
like mentioned in the title, is there a fast way of creating a vector with repeating digits?
Thanks!
Simon
Accepted Answer
More Answers (4)
Andrei Bobrov
on 1 Jul 2014
k = [1;1]*(0:n);
out = k(:)';
1 Comment
Paul Safier
on 8 Dec 2022
Perfect.
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?
n = 5;
x1 = repelem(0:n, 2)
1 Comment
Paul Safier
on 8 Dec 2022
Oh wow, very nice. I'd never heard of the repelem function. Thanks.
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
Categories
Find more on Operators and Elementary Operations 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!