How to find coordinates of non-zero elements of matrix (not their Linear Indices)?

13 views (last 30 days)
I need to find the coordinates of the non zero elements of a matrix, M1:
M1 =
0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 66.0540e+003 64.2759e+003
0.0000e+000 86.9708e+003 81.3036e+003 81.0349e+003
127.9599e+003 120.6672e+003 119.6269e+003 121.4074e+003
I tried using the ind2sub function, but I'm not sure I understood how it works, since it returns something that doesn't make sense to me:
ind = M1;
sz = [5 4];
[row,col] = ind2sub(sz,ind)
row =
0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 4.0126e+000 5.8732e+000
0.0000e+000 5.8386e+000 3.6091e+000 4.8630e+000
4.9465e+000 2.1525e+000 1.8986e+000 2.4276e+000
col =
1.0000e+000 1.0000e+000 1.0000e+000 1.0000e+000
1.0000e+000 1.0000e+000 1.0000e+000 1.0000e+000
1.0000e+000 1.0000e+000 13.2110e+003 12.8550e+003
1.0000e+000 17.3940e+003 16.2610e+003 16.2070e+003
25.5920e+003 24.1340e+003 23.9260e+003 24.2820e+003
My objective is to organize this M1 data in a table, with the non-zero elements and their corresponding coordinate. For example:
| Number | Row | Column |
66.0540e+003 3 3
64.2759e+003 3 4
.....
..... and so on
Can someone help me do that? I actually need their row/column coordinates and not their Linear Indices.

Accepted Answer

David Hill
David Hill on 7 Apr 2022
Edited: David Hill on 7 Apr 2022
[row,col]=find(M1>0);

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!