Issue with find()
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
KSSV
am 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:
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!