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

11 ビュー (過去 30 日間)
LoroEE
LoroEE 2022 年 4 月 7 日
編集済み: David Hill 2022 年 4 月 7 日
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.

採用された回答

David Hill
David Hill 2022 年 4 月 7 日
編集済み: David Hill 2022 年 4 月 7 日
[row,col]=find(M1>0);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by