Issue with find()
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have something that seems to be quite a fundamental issue yet I am having issues fixing it:
I have an array containing various values, and I wish to find where in the array matches a value, which is caclulated eslewhere in the script.
Yet when using find() I'm getting some funny behaviour, as say I know one of the values is 0.65, and the variable containing 0.65 is called ratio_x, using
x = find(array == ratio_x)
returns an empty matrix, yet when using the value itself such as
x = find(array == 0.65)
it works fine.
Both array and ratio_x are saved as double, and array is rounded to 2 decimal places.
Any help would be appreciated.
0 commentaires
Réponse acceptée
KSSV
le 14 Sep 2016
It is not advised to compare floating point numbers using ==. You have to fix a small number (tolerance) say, eps = 10^-5 and check for is the absolute difference less then that. If so then the floating point numbers are close enough. '
More on:
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!