Find index of a number in a 3d array
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Torsten
il 13 Set 2022
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 Commenti
Bruno Luong
il 13 Set 2022
Modificato: Bruno Luong
il 13 Set 2022
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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!