Matlab 嵌套If语句
我的代码基本上是错误检查,显然不是所有的错误检查都会在同一次迭代中满足条件。我基本上做的是一个无限循环,在其中我做了几个循环(每个循环处理一个特定的错误检查),下面是我的代码:Matlab 嵌套If语句,matlab,if-statement,nested-loops,Matlab,If Statement,Nested Loops,我的代码基本上是错误检查,显然不是所有的错误检查都会在同一次迭代中满足条件。我基本上做的是一个无限循环,在其中我做了几个循环(每个循环处理一个特定的错误检查),下面是我的代码: while(1) if(error1(x) < 0.001) *condition statements* break; else while(error1(x) >= 0.001) *condition statements* end 我目前没有Matlab的访问权限,你们认为它能工作吗?
while(1)
if(error1(x) < 0.001)
*condition statements*
break;
else
while(error1(x) >= 0.001)
*condition statements*
end
我目前没有Matlab的访问权限,你们认为它能工作吗?如果没有,请您提供如何在满足所有错误检查条件后立即退出无限循环的指导?提前谢谢。我唯一的问题是退出无限循环。这里有一个很好的方法来做多个测试,但只在第一个成功的测试上做一些事情:
x = 5;
switch true
case x > 10
fprintf(1, 'x is greater than 10\n')
case x > 8
fprintf(1, 'x is greater than 8\n')
case x < 6
fprintf(1, 'x is less than 6\n')
case y == 3
fprintf(1, 'y equals three\n')
otherwise
fprintf(1, 'no conditions were met\n')
end
x=5;
切换为真
案例x>10
fprintf(1,'x大于10\n')
案例x>8
fprintf(1,'x大于8\n')
案例x<6
fprintf(1,'x小于6\n')
案例y==3
fprintf(1,'y=3\n')
否则
fprintf(1,'未满足任何条件\n')
结束
它使代码非常干净,易于理解/修改。与C语言不同,在C语言中,您可以从一个案例“失败”到下一个案例,而在Matlab中,您只能执行一个案例(然后您将退出)。然而,使用OR构造,在一个案例中可能有多个条件:案例x<6 | y>3
例如,如果满足任一条件(且之前的条件均不成立),则将运行该案例
无法确定这是你想要的,因为问题非常不清楚;但也许你会发现这很有用。请随意在评论中提出澄清问题。哦,我忘了礼貌,提前谢谢!如果你不能访问matlab,我建议使用octave,它是免费的,支持基本相同的语言。不,问题是,我明天可以访问它,我只想知道这个方法是否有效,我现在不需要进一步研究,但非常感谢你的建议,我会调查的。你的代码不起作用,因为它在语法上不正确。缺少一些
end
。我不知道您要实现什么,因为我不理解您的描述。您是希望多个条件为真,还是只需要处理第一个为真的条件?因为如果只期望一个条件为真,那么switch
语句将更加简洁。
break;
end;
x = x+1;
end
x = 5;
switch true
case x > 10
fprintf(1, 'x is greater than 10\n')
case x > 8
fprintf(1, 'x is greater than 8\n')
case x < 6
fprintf(1, 'x is less than 6\n')
case y == 3
fprintf(1, 'y equals three\n')
otherwise
fprintf(1, 'no conditions were met\n')
end