find index in a matrix without 'find' function
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have an array of 1000+ samples. I want to find the index of nonzero elements in a large matrix in a shortest possible time. Whats the best way to get the list of indexing without using "find" funcion?
Example
p=[0 0 .34 0; 3 0 0 3; 0 9 0 0];
v=nonzeros(p)
for i=1:length(v)
[r,t]=find(p==v(i))
sds{i}=[r,t];
end;
0 Commenti
Risposte (1)
Adam Danz
il 12 Giu 2021
Modificato: Adam Danz
il 14 Giu 2021
find() is the quickest way to return the subscript indices of non-zero elements of a matrix but it's quicker to do so without using a loop. Is there a reason you can't use find?
p=[0 0 .34 0; 3 0 0 3; 0 9 0 0];
[rows, cols] = find(p~=0)
So, sds{i} is the same as [rows(i), cols(i)] but without repeats of the same value.
0 Commenti
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!