Matrix manipulation
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentar
Teja Muppirala
am 12 Apr. 2011
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).
Akzeptierte Antwort
Andrei Bobrov
am 12 Apr. 2011
variant
i = [785 58 595 389 450 956];
j = [4 6 2 3 5 1];
A(sub2ind(size(A), i, j)=1;
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!