My script sees the value 2 different then 2.0000 which is a problem
Show older comments
hello, i am facing a problem in my script, where MATLAB is seeing the value A=2.000 > B=2 . i have checked the value A to see if it belongs to a value slightly larger then 2 by applying
floor(A) and ceil(A) which both give a result of 2.
what is the problem in your opinion and how could i fix it? Thank you!
Accepted Answer
More Answers (1)
Sayyed Ahmad
on 19 Jun 2018
Edited: Sayyed Ahmad
on 19 Jun 2018
Look at Operator Precedence in matlab.
A=2000;
B=2;
C=A>B;
4 Comments
Ibrahim DAWI
on 19 Jun 2018
Guillaume
on 19 Jun 2018
Sayyed Ahmad's comment mistakenly posted as an answer moved here. Please use comment on this Answer instead of starting a new answer.
you have to look inside your function to find the solution.
This codes will simulate your function output values
a=2
b=2-eps
a==b
answer:
a =
2
b =
2.0000
ans =
logical
0
Dennis
on 19 Jun 2018
try:
if abs(temp_distance(9)-optimal_distance(9))<0.001
Guillaume
on 19 Jun 2018
The tolerance (the 0.001, see discussion in my answer) needs to be defined appropriately for the magnitude of the numbers compared and the possible accumulated error of the calculations that produced these numbers.
As we don't know anything about these calculations, we can't be sure of anything but if 0.001 out of 2 is around the magnitude of the accumulated error I'd say that you've got big problems. It is most likely that a smaller tolerance would be more appropriate.
Categories
Find more on Function Creation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!