How to find the position of a number in an array?
41 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a column vector Y which is 7306409x1 double. I want to find the position (indices) of a specifric number (8) in Y. I used
k=find(Y==8)
But MATLAB gives the answer
k =
0×1 empty double column vector
and does not show the indices. I think the problem is something with the "double". Does anyone know how to solve this?
Thanks!
1 Kommentar
Antworten (2)
Matt J
am 12 Jun. 2020
Bearbeitet: Matt J
am 12 Jun. 2020
There is nothing wrong with your code as long as there are elements in Y that are exactly equal to 8
>> Y=[8 1 2 5 8 6];
>> k=find(Y==8)
k =
1 5
Suprises may happen, however, if Y contains floating point inaccuracies that you can't see on the screen,
>> Y=[8 1 2 5 8 6] + 10*eps,
Y =
8.0000 1.0000 2.0000 5.0000 8.0000 6.0000
>> k=find(Y==8)
k =
1×0 empty double row vector
One solution is to round,
>> k=find(round(Y)==8)
k =
1 5
madhan ravi
am 12 Jun. 2020
Bearbeitet: madhan ravi
am 12 Jun. 2020
k = find( (abs(Y) - 8) < 1e-2 ) % where 1e-2 is the tolerance
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!