"Find" function with 3d matrix doesn't work
Mostra commenti meno recenti
Hello, I have a 3d matrix named A3D (size 200x200x200). Values in this matrix are from 0 to 1. If I type for example:
A3D(50,92,100)
I get an answer:
ans =
1.0000
So I'm sure there are values 1 (actually I know it also from "image" of a slice of matrix - there I can see a lot of values "1"). But when I try to use "find":
[val1,val2,val3] = ind2sub(size(A3D),find(A3D == 1));
then vectors val1 val2 and val3 are empty. These vectors are filled when I type:
[val1,val2,val3] = ind2sub(size(A3D),find(A3D < 1));
It that case Matlab says that all of the values in my matrix are <1. But that is not true! Why matlab doesn't want to find values == 1? Thank you very much for your help!
Risposta accettata
Più risposte (1)
Azzi Abdelmalek
il 21 Ago 2012
use
[val1,val2,val3] = ind2sub(size(A3D),find(A3D <= 1 & A3D>1-eps));
maybe 1 is 0.9999999999999999999 for numeric considerations
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!