if statement question on two variables

there are two variables, f_x2(k)(1*50 double matrix, k=30), f_gbest all are equal to 7.9597,
but "f_x2(k) < f_gbest" returns TRUE!!!
Command History:
>> f_x2(k)
ans =
7.9597
>> f_gbest
f_gbest =
7.9597
>> f_x2(k) < f_gbest
ans =
1
Why returns 1 ? Shouldn't it be 0?

Réponses (1)

Roger Stafford
Roger Stafford le 22 Juin 2016
Try this:
format hex
f_x2(k)
f_gbest
You might be surprised by the result. Or else you can do this:
fprintf(f_x2(k) = %25.20f f_gbest = %25.20f\n’,f_x2(k),f_gbest)

1 commentaire

Or just look at the quantity
delta = f_gbest - f_x2(k)
The value stored in delta will be small but positive. Just because the number is only displayed with a small number of decimal places doesn't mean it's stored with only that small number of decimal places. To display more decimal places, see the help for the format function.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Entering Commands dans Centre d'aide et File Exchange

Question posée :

le 22 Juin 2016

Commenté :

le 22 Juin 2016

Community Treasure Hunt

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

Start Hunting!

Translated by