Find non-zero elements in a 3-D matrix

Hi,
I have a 3-D matrix containing some non-zero numerical values.I want to find the indices of these non-zero elements.
I know find() can give me row and column, but it doesn't work for a 3-D matrix. Is there another function I can use?

1 Commento

You can use nnz(matrix), it gives you number of all non-zero elements.

Accedi per commentare.

 Risposta accettata

Jan
Jan il 11 Lug 2013
Why do you assume, that find() does not work for 3D arrays? Of course it does work. When used with a single output, it replies the linear index. Using this is faster than the 3 separated indices, but you can use ind2sub for a conversion:
ind = find(A);
[i1, i2, i3] = ind2sub(size(A), ind);

4 Commenti

More simple
Yes, you are right! Thanks a lot!
Thanks a lot!
How do you reshape it in the form of the original matrix

Accedi per commentare.

Più risposte (0)

Categorie

Richiesto:

il 11 Lug 2013

Commentato:

il 20 Dic 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by