Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Subscript assignment mismatch with the use of 'find'

2 visualizaciones (últimos 30 días)
aditya
aditya el 31 de Ag. de 2011
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
The following as commands typed in the command window with the results:
>> X = 0:0.001:1;
>> find(X==0.57)
ans =
Empty matrix: 1-by-0
>> X(571)
ans =
0.5700
I cannot figure out why find doesn't work. I stumbled on it accidentally. This works if choose to find any other number except a special few like 0.47, 0.67, 0.41...

Respuestas (3)

Arturo Moncada-Torres
Arturo Moncada-Torres el 31 de Ag. de 2011
I recommend you to look at this part of the MATLAB FAQ. This explains the results you are getting.

Fangjun Jiang
Fangjun Jiang el 31 de Ag. de 2011
floating point comparison!!!

aditya
aditya el 31 de Ag. de 2011
Thanks. But in that case...using '==' should not give a result for a lot more cases.
Also,
using linspace instead of colons for defining the vector (here, X) seems to solve the problem. I do not like the approach of comparing difference with tolerance as given in the FAQ...it is not really a good solution in my opinion.
  1 comentario
Walter Roberson
Walter Roberson el 2 de Sept. de 2011
Using tolerances is the only practical solution unless you have a system that has extensive interval-arithmetic operations built in. Building in that level of interval-arithmetic is hard!!

La pregunta está cerrada.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by