我有一个迭代问题,我想用for
- 循环来解决。但是,一旦我的条件得到满足,我想摆脱for
- 循环。我有if
- 声明来检查我的状况是否满意
但if
- 陈述从未捕捉到它应该达到的条件
这是我的代码的简化示例。 if
- 语句与我的代码完全相同,但for
- 循环和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
答案 0 :(得分:0)
作为rayryeng pointed out,代码中的这一行不符合您的想法:
0.01 < delta_Q < -0,01
-0,01
与-0.01
不同,而是0
和1
但是:
0.01 < delta_Q && delta_Q < -0.01
没有意义,因为您不能同时大于0.01
且小于-0.01
因此,如果您将条件更改为:
-0.01 < delta_Q && delta_Q < 0.01
你得到了理想的行为。
所有这一切都可以通过simple debugging steps找到。