Indexing a matrix with another matrix?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Petter Stefansson
am 23 Sep. 2016
Kommentiert: Petter Stefansson
am 23 Sep. 2016
Hi.
I have a 10000x4 matrix, Idx, where each row contains 4 indices to a logical matrix, A. I would like to set all indices in Idx to true (1) in A. This seems like something that should be possible to do very easy in one single line but I can’t quite figure it out so I’m currently doing it by looping:
A = false(10000,256);
for i = 1 : size(A,1)
A(i,Idx(i,:)) = true;
end
which is very slow. Could someone tell me how to do this indexing without a loop?
Thanks
0 Kommentare
Akzeptierte Antwort
Andrei Bobrov
am 23 Sep. 2016
Bearbeitet: Andrei Bobrov
am 23 Sep. 2016
[m,n] = size(Idx);
[ii,~] = ndgrid(1:m,1:n); % or ii = repmat((1:m)',1,n);
% ii = (1:m)'*ones(1,n);
A(sub2ind(size(A),ii,Idx)) = true;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!