What's the best way to create a vector with a repeating and diminutive sequence?
    4 views (last 30 days)
  
       Show older comments
    
For a small example, how to create a version of this, with a longer seequence. These are integers of equal length apart:
v = 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 1 2 ....
and the starting sequence length will be scaled up into the 100s or 1000s.
Any thoughts?
0 Comments
Accepted Answer
  Matt Fig
      
      
 on 3 Jun 2011
        N = 6;
A = cumsum(tril(ones(N,'single')));
A = A(A>0).';
If memory is a concern, this will conserve it:
L = (N^2+N)/2;
B = ones(1,L);
idx = (1:N).*((1:N)-1)/2;
Li = length(idx);
B(idx(2:Li)) = -(1:Li-1);
B = cumsum(B(L:-1:1));
2 Comments
  Matt Fig
      
      
 on 3 Jun 2011
				In that case, just reverse the order of two operations:
A = tril(cumsum(ones(N,'single')));
More Answers (0)
See Also
Categories
				Find more on Matrices and Arrays 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!
