Matrix manipulation
    5 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hi,
I have a matrix A(1000,6) and i want to write 1's at certain positions say:
 i = [785 58 595 389 450 956];
 j = [4 6 2 3 5 1];
If I do A(i,j) = 1 it places 1's in the positions "i" of all the columns "j".
But what i want is:
 A(i(1),j(1)) = 1
 A(i(2),j(2)) = 1 
 ...
 A(i(end),j(end)) = 1
Does anybody knows how to do this without having to use a for loop?
1 件のコメント
  Teja Muppirala
    
 2011 年 4 月 12 日
				Is there a compelling reason not to use a FOR loop? A loop will probably do this faster than any non-loop solution (that I can think of anyways).
採用された回答
  Andrei Bobrov
      
      
 2011 年 4 月 12 日
        variant
 i = [785 58 595 389 450 956];
 j = [4 6 2 3 5 1];
 A(sub2ind(size(A), i, j)=1;
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Matrix Indexing についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


