Matrix manipulation

5 ビュー (過去 30 日間)
Pedro Cavaco
Pedro Cavaco 2011 年 4 月 12 日
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
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
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 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by