Filter löschen
Filter löschen

Matrix manipulation

2 Ansichten (letzte 30 Tage)
Pedro Cavaco
Pedro Cavaco am 12 Apr. 2011
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
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).

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
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;

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements 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!

Translated by