嵌套如果语句Matlab

时间:2013-12-25 20:51:43

标签: matlab if-statement nested-loops

我的代码基本上是错误检查,显然并非所有的错误检查都会在同一次迭代中满足条件。我基本上做的是一个无限循环,在其中我做了几个循环(每个循环处理特定的错误检查),这是我的代码:

while(1)

if(error1(x) < 0.001)

*condition statements*

break;

else

while(error1(x) >= 0.001)

*condition statements*

end 

并且它以相同的方式继续进行所有其他错误检查。在最后一段代码中我写了这个:

if(error1(x) < 0.001)

if(error2(x) < 0.001) 

它进入嵌套的if语句,直到最后一次错误检查条件,然后:

break;

end;

x = x+1;

end

我目前无法访问Matlab,你们认为它会起作用吗?如果没有,您是否可以在满足错误检查的所有条件后立即提供有关如何退出无限循环的指导?提前致谢。我唯一的问题是退出无限循环。

1 个答案:

答案 0 :(得分:0)

这是一种很好的方法来进行多项测试,但只对第一项成功的方法做了一些事情:

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

它使代码非常干净,易于理解/修改。与C不同,你可以从一个案例到另一个案例“陷入”,在Matlab中你只能执行一个案例(然后你会退出)。但是,在单个案例中可以使用OR构造具有多个条件:例如,如果满足任一条件,则运行case x < 6 | y > 3(并且没有先前条件为真)。

不能确定这是你想要的,因为这个问题非常不清楚;但也许你会觉得这很有用。请随意在评论中提出澄清问题。

相关问题