Find index of a number in a 3d array

7 ビュー (過去 30 日間)
Baiwen Ding
Baiwen Ding 2022 年 9 月 13 日
編集済み: Bruno Luong 2022 年 9 月 13 日
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.

採用された回答

Torsten
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 件のコメント
Baiwen Ding
Baiwen Ding 2022 年 9 月 13 日
Hi thanks for the answer it worked. Do you mind explaining the rationale behind the solution? Thanks.
Bruno Luong
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 ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by