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.

 Risposta accettata

KSSV
KSSV il 14 Set 2016

0 voti

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:

1 Commento

David
David il 14 Set 2016
That works fine too, thank you very much!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB in Centro assistenza e File Exchange

Richiesto:

il 14 Set 2016

Commentato:

il 14 Set 2016

Community Treasure Hunt

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

Start Hunting!

Translated by