调试MATLAB:在特定行的错误之前中断

时间:2013-10-10 21:29:36

标签: matlab debugging

我正在尝试在代码中找到错误。错误是第3级的函数,最初工作正常,但不知何故在某一点停止(在循环中多次调用该函数)。

错误表示变量未定义(它不会在开始时发生,但在超过150次后发生)。我可以在句子上面写一些条件来在错误发生前停止吗?然后我就知道为什么这个变量不再被定义了。

3 个答案:

答案 0 :(得分:8)

使用dbstop if error。发生错误时,dbstop命令将带您在已停止的函数中命令提示符。

您也可能会变得棘手并使用dbstop in FILESPEC at LINENO if EXPRESSION语法。例如,如果要在错误发生的行之前不存在变量,则要中断,例如myFun.m的第224行:

dbstop in myFun.m at 224 if ~exist('x','var')

如果myFun.m不是变量,它将在x的第224行停止。

答案 1 :(得分:4)

类型

 dbstop if error

然后执行代码。

有关更多选项,请参阅dbstop的{​​{3}}。

答案 2 :(得分:0)

检查您是否超出了正在迭代的数组或其他结构