For Loop Not Executing
이전 댓글 표시
Hi all!
Consider the following example:
h=(2/1000);
for i=8*h+h:h:9*h
i
end
i =
0.0180
And similarly,
>> for i=11*h+h:h:12*h
i
end
i =
0.0240
But when I do this:
>> for i=9*h+h:h:10*h
i
end
it doesn't enter the for loop! What is going on? Thanks for the help!
댓글 수: 2
Star Strider
2017년 1월 29일
You can go as far as you did, but Rena Berman will reconstitute it in a few days.
Does Sisyphus begin to sound relevant?
Rena Berman
2017년 2월 8일
(Answers dev) Restored edit
채택된 답변
추가 답변 (1개)
David Goodmanson
2016년 9월 17일
0 개 추천
For the floating point number h you are basically asking if n*h + h == (n+1)*h for various values of n. Well, sometimes the two sides are equal (to machine precision), sometimes not. For n=9 the left hand side is bigger than the right hand side by 3e-18, so the for loop doesn't do anything.
It's never a good idea to do exact equality tests with floating point numbers.
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!