How to find the position of a number in an array?
64 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentario
Respuestas (2)
Matt J
el 12 de Jun. de 2020
Editada: Matt J
el 12 de Jun. de 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
4 comentarios
madhan ravi
el 12 de Jun. de 2020
Editada: madhan ravi
el 12 de Jun. de 2020
k = find( (abs(Y) - 8) < 1e-2 ) % where 1e-2 is the tolerance
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!