我有一个迭代问题,我想用for-loop来解决。但是,一旦我的条件得到满足,我就想脱离for-loop。我有一个if-statement来检查我的条件是否满足。
但是if-statement从来没有捕捉到它应该捕捉到的条件。
下面是我的代码的一个简化示例。if-statement在我的代码中是完全一样的,但是for-loop和delta_Q被简化了。
for ii=1:1000
delta_Q = rand(1)*10-5
if 0.01 < delta_Q < -0,01
disp(['delta_Q too small, last index:', num2str(ii)])
break
end
end发布于 2015-10-23 00:39:04
作为rayryeng pointed out,代码中的这一行并不像您认为的那样:
0.01 < delta_Q < -0,01和布尔条件需要分隔,
-0,01不同于-0.01,而是0
-0,01 1
这没有意义,因为不能同时大于-0.01和小于0.01
因此,如果您将条件更改为:
-0.01 < delta_Q && delta_Q < 0.01您将获得所需的行为。
所有这些都可以通过simple debugging steps找到。
https://stackoverflow.com/questions/33244751
复制相似问题