What's the best way to create a vector with a repeating and diminutive sequence?
    3 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件のコメント
採用された回答
  Matt Fig
      
      
 2011 年 6 月 3 日
        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 件のコメント
  Matt Fig
      
      
 2011 年 6 月 3 日
				In that case, just reverse the order of two operations:
A = tril(cumsum(ones(N,'single')));
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Matrices and Arrays についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!