Find non-zero elements in a 3-D matrix

9 vues (au cours des 30 derniers jours)
Jenny
Jenny le 11 Juil 2013
Commenté : Mehri Mehrnia le 20 Déc 2021
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 commentaire
Mehri Mehrnia
Mehri Mehrnia le 20 Déc 2021
You can use nnz(matrix), it gives you number of all non-zero elements.

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 11 Juil 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 commentaires
Shujaat Khan
Shujaat Khan le 26 Jan 2018
Thanks a lot!
Nicholas Appiah
Nicholas Appiah le 16 Sep 2021
How do you reshape it in the form of the original matrix

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by