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 Kommentar

Mehri Mehrnia
Mehri Mehrnia am 20 Dez. 2021
You can use nnz(matrix), it gives you number of all non-zero elements.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 11 Jul. 2013

4 Stimmen

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 Kommentare

Azzi Abdelmalek
Azzi Abdelmalek am 11 Jul. 2013
More simple
Jenny
Jenny am 11 Jul. 2013
Yes, you are right! Thanks a lot!
Shujaat Khan
Shujaat Khan am 26 Jan. 2018
Thanks a lot!
Nicholas Appiah
Nicholas Appiah am 16 Sep. 2021
How do you reshape it in the form of the original matrix

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Gefragt:

am 11 Jul. 2013

Kommentiert:

am 20 Dez. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by