如果 for 循环中的语句无法正常工作 - MATLAB


for h=0:39
if h<10
disp('primi 10')
elseif 10<=h<20
disp('primi 20')        
elseif 20<=h<30
disp('primi 30')
elseif 30<=h<40
disp('primi 40')
end
end

上面的简单代码是我尝试在MATLAB中运行的代码,但作为输出,我得到了一些奇怪的东西,如:

primi 10
primi 10
primi 10
primi 10
primi 10
%first 10 senteces are corrected
...
primi 10
primi 20
primi 20
primi 20
.....
%until the end of the loop

所以matlab似乎没有退出

elseif 10 & lt; = h<20disp(普米族20)

语句。事实上,前20次迭代是正确的,而其他的没有。我真的不知道该怎么纠正。有什么建议吗?

您应该将"奇异"条件与逻辑运算符结合使用,例如" elseif 10<=h &&h<20"。在您的示例中,编译器首先看到10<=h并将其解析为True,然后继续比较True<20,这也是True,因此所有内容都打印为20。

最新更新