I have this small code. If statement fails to execute when x(i)<=10^0 say for 10^-5, 10^-1 or 10^0 even though matrix x contains the given elements

 Akzeptierte Antwort

For the third time today, the answer is floating point arithmetics:
>> [f,ind]=min(abs(x-.01))
f =
1.7347e-18
ind =
55
So the 55th element of x is close to 0.01, but it actually isn't 0.01. Comparing double values, you should give some threshold under which two numbers are considered equal. E.q.
if abs(x(i)-.01)<1e-6

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by