使用dbstop在不同的函数中设置断点

时间:2016-04-20 02:30:48

标签: matlab

我的主要活动

clear all
dbstop in a.m if a1>3
x=1;
y=2;
a(x,y)

a.m去了

function [a1, a2] = a(x,y)
   a1=x+y
   a2=x-y
   while a1<5
      a1=a1+1
   end
end

但是当我运行main.m时,我面临以下错误。

Breakpoint expression 'a1>3' resulted in an error. 
The error was Undefined function or variable 'a1'

为什么会这样?

我也尝试了看起来像

的main.m.
clear all
x=1;
y=2;
a(x,y)
dbstop in a.m at 5 if a1>3

但它会导致相同的错误消息。

1 个答案:

答案 0 :(得分:1)

如您所知,您可以使用dbstop在给定特定条件的文件中设置断点。诀窍是,如果没有为断点指定特定的行号,则必须能够在相关文件a.m中的每个处评估条件。

如果查看函数a,您会看到a1未在第一行定义(即它不是输入参数,直到下一行才定义)这会导致你的错误。

我建议在特定行设置断点。在你的情况下,我假设你想在while循环中的某个时刻捕获它,所以可能在第5行设置条件断点。

dbstop in a.m at 5 if a1>3