Overwriting While-loop conditional with +Inf
显示 更早的评论
In my code, I have this loop:
while a~=1 && b <= totCycles
...
end
I want the loop to run as long as the conditions hold, obviously.
Sometimes, however, I do not want the second condition. I want to effectively make it always true.
Setting totCycles = +Inf looke like the right way to do this, but it doesnt seem to work!
Any ideas why this might be? Or any other workaround?
Many Thanks
Doug
3 个评论
Andrew Newell
2017-4-21
How exactly does it not work?
Douglas Bock
2017-4-21
Stephen23
2017-4-21
@Douglas Bock: how do you know that the first condition is not met? How did you check this? Are the two values integer or floating point?
回答(2 个)
Andrew Newell
2017-4-21
编辑:Andrew Newell
2017-4-21
0 个投票
MATLAB evaluates a logical expression like your while condition from left to right. If a==1, it knows the expression is false and does not even look at the second part. So I suspect that a is a floating point number, and when you think it is equal to 1 it is not exactly equal to 1. See this FAQ.
hmi amid
2017-4-21
You can try this :
while a~=1 && (b <= totCycles || idontcare_b)
...
idontcare_b = true % in a place you dont care about the value of b
end
类别
在 帮助中心 和 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!