Matlab:如何在matlab中停止整个函数?

时间:2016-01-05 23:52:11

标签: matlab

我在matlab中有一个函数来计算某些东西。在该函数中,我打开另一个函数来为它计算一些东西。 现在在第二个函数中我有一些情况,我只想在某些条件为真的情况下停止一切(所以我想结束这两个函数)

我不想要错误信息或其他任何内容;是否有命令?

如果我只输入error,我会收到一些红色的通知,其中包含以下消息:

error: Invalid call to error.  Correct usage is:

 -- Built-in Function: error (TEMPLATE, ...)
 -- Built-in Function: error (ID, TEMPLATE, ...)

error: called from:
error:   /usr/share/octave/3.8.1/m/help/print_usage.m at line 89, column 5
>>>error:   /home/john/wpq.m at line 75, column 4
error:   /home/john/test.m at line 23, column 21

如果我写error('blabla')我仍然得到:

>>>error: blabla
error: called from:
error:   /home/john/wpq.m at line 75, column 4
error:   /home/john/test.m at line 23, column 21

我想没有输出,因为我可以在上面写一行disp('the test on this number failed')

2 个答案:

答案 0 :(得分:0)

您可以尝试在主函数中放置一个try / catch块,以期望您希望代码执行停止的条件。 我不相信有任何一个命令允许代码停止从函数内的函数执行。

答案 1 :(得分:0)

有很多方法可以做你想做的事。通常,错误仅用于实际上是错误的事情。例如,您可以获得超出范围的"索引"如果您尝试访问数组外部的元素,则会出错。如果发生的是错误,您应该发送错误消息以通知用户发生的情况并突出显示这是一个错误。但是,如果您只希望此特定计算结束而不是程序,我会建议try-catch并在catch中打印错误消息。

如果这是正常终止(或者如果只有特定的函数不正常地终止并且这是某些输入的预期),您可以使用终止条件(function [out,success] = myFun(in))或try-catch。两者都被接受,但我更倾向于使用终止条件方法进行正常终止,并尝试使用try-catch进行非正常终止(函数)。例如,在计算所有输出变量之前必须终止函数时,异常终止。我喜欢抛出异常而不是函数返回无效值(但是c程序员可能会有不同的争论)。

对于记录,Matlab中有一个return - 语句,它终止了一个特定的函数。

如果不了解您所处的情况,很难推荐一种特定的方法,但是本文将为您提供一些不同的选择。知道错误处理很少有标准的方法,可以说是"对"。程序员通常需要决定什么是合适的,这通常是设计的一部分。

祝你好运!