Fast creation of vector [0 0 1 1 2 2 3 3... n n]
    8 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 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!