Borrar filtros
Borrar filtros

Logical indexing in maltab

1 visualización (últimos 30 días)
Bharat
Bharat el 17 de Jun. de 2015
Comentada: James Tursa el 17 de Jun. de 2015
Hello,
I need help regarding a code.:
Sal = para(i,7); y= X(X<Sal); this doesn't change the output
The vaulue of Sal is = 0.005. If I use this, then it returns the right value.
y = X(X<0.005); this returns the correct output.
How do I resolve this issue.
Thanks.
  1 comentario
Stephen23
Stephen23 el 17 de Jun. de 2015
Editada: Stephen23 el 17 de Jun. de 2015
Learn about binary floating point numbers, and how they cannot accurately represent all decimal fractions:
You might also like to try using this, to find out what the value really is:

Iniciar sesión para comentar.

Respuestas (2)

James Tursa
James Tursa el 17 de Jun. de 2015
If I understand your question, you are saying that y= X(X<Sal) returns a different result than y = X(X<0.005), even though Sal = 0.005.
I would hazard a guess that Sal is not really 0.005, but is a number close to 0.005 that displays the same as 0.005. What do you get with the following:
Sal == 0.005
  3 comentarios
Bharat
Bharat el 17 de Jun. de 2015
I just checked. y=X(X<0.005010368459505) also doens't work. however y=X(X<0.005) works, which suggests that it related to number of significant digits. How do I change the number of significant digits?
Thanks
James Tursa
James Tursa el 17 de Jun. de 2015
I think you now need to give us a more complete picture of what you are doing and what "doesn't work" means. If y=X(X<0.005) "works", then why aren't you doing that explicitly? Is the real problem that you need to round Sal to the nearest 3-decimal place number for some reason? Or what?

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 17 de Jun. de 2015

Categorías

Más información sobre Dates and Time en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by