MATLAB重启函数而不是返回(取消)

时间:2013-06-07 04:57:46

标签: matlab

我一直在看,但我认为它不存在。 返回基本上强制关闭你的函数,这很好,但在我当前的脚本中,我想如果它做错了什么,而是返回到它所在的子函数的开头。

是否有任何功能已经存在,或者我是否必须制作一个系统才能让自己这样做?

3 个答案:

答案 0 :(得分:1)

当某些内容“执行不正确”时,不使用returnerror,而是在while循环中使用try/catch

while 1
    try
        myFunction();
        break; % if myFunction() was successful, this will exit the while loop
    catch
        % do some sort of processing here, then go back to the while loop
    end
end 

catch / try块的catch部分仅在myFunction()出错时才会执行。 return意味着函数成功(无论它是否给出正确的输出完全是另一个问题)。


或者,您可以按照@natan的建议将函数放在while循环中。返回某种错误代码,然后检查while条件中的错误代码。

答案 1 :(得分:0)

当你想重启函数时,只需使用while 1循环来包围整个函数和continue

答案 2 :(得分:0)

如果你不是在寻找错误处理,而只是寻找结果处理

,我会怎么做
finishedSuccesfully = false
while ~finishedSuccesfully 
    output = myFunction();
    finishedSuccesfully = evaluateoutput(output);
end