【发布时间】:2015-10-20 19:00:26
【问题描述】:
我有一个迭代问题,我想用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
【问题讨论】:
-
@Ander Biguri 这是代码
-
if 0.01 < delta_Q <-0,01是无效的 MATLAB 语法。您不能像在 Python 中那样链接布尔条件。你必须具体做到:if delta_Q < -0.01 && delta_Q > 0.01 -
@rayryeng 我试过了,但还是:(
-
每次计算时打印出
delta_Q,看看它的绝对值是否低于0.01。您还应该自行检查您的if条件,以确保它返回您期望的值。
标签: matlab loops for-loop exit