Find index of a number in a 3d array
7 ビュー (過去 30 日間)
古いコメントを表示
Hi.
I have a 14610x146x220 3d array. I know that somewhere in this array there is a value of 31.5814 however i dont know what is the index of this value. May i know how do i find out what is the index of this value?
Edit:
For me I used the solution from
Thanks all for helping.
0 件のコメント
採用された回答
Torsten
2022 年 9 月 13 日
i = find(A(:) == 31.5814);
[i1 i2 i3] = ind2sub([14610,146,220],i(1));
A(i1,i2,i3)
But most probably, floating point inaccuracies will inhit finding the value.
You could try
epsilon = 1e-6;
i = find(abs(A(:)-31.5814)<epsilon);
[i1 i2 i3] = ind2sub([14610,146,220],i(1));
A(i1,i2,i3)
6 件のコメント
Bruno Luong
2022 年 9 月 13 日
編集済み: Bruno Luong
2022 年 9 月 13 日
Just look for the closest point to 31.5814, the metric is d=abs(x-31.5814). This solution doesn't need for fine tuning of the tolerance, so easier to work.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!