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?
回答(1 个)
Roger Stafford
2016-6-22
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 个评论
Steven Lord
2016-6-22
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Entering Commands 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!