0.48 and 0.72 not detected in the array
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I have attached varmat.mat. In this array, I can find any other elements in the array using find (SessionData.CoherenceTypes == 0.08) for example.
whenever I want to look for 0.48 or 0.72 using SessionData.CoherenceTypes == 0.48 or SessionData.CoherenceTypes == 0.72, the vector returned is empty although 0.48 and 0.72 are in the row vector. I tried in multiple computers and those two values are not detected.
Please suggest what was the problem. thanks.
1 comentario
Stephen23
el 24 de En. de 2023
"Please suggest what was the problem."
This is a completely expected result with binary floating point numbers:
This is highly recommended reading material as well:
Respuestas (1)
the cyclist
el 24 de En. de 2023
Editada: the cyclist
el 24 de En. de 2023
Due to floating point precision, the values are not exactly 0.48. For example,
load("varmat.mat","SessionData")
SessionData.CoherenceTypes(256) - 0.48
When doing comparison for floating point numbers, you need to check for equality within a tolerance.
See, for example, this documentation for details about floating point numbers and how to deal with them.
0 comentarios
Ver también
Categorías
Más información sobre Detection 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!