find index in a matrix without 'find' function
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Adam Danz
el 12 de Jun. de 2021
Editada: Adam Danz
el 14 de Jun. de 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 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!