在MatLab中打印行号(包括上级函数的行号)?

时间:2016-05-05 20:10:32

标签: matlab

假设main.m调用func1.m,func1.m在func1.m的三个部分调用func2.m

假设我在func2.m中打印了一些变量,因为有一些错误。

假设我打印

var2 = 3
var2 = 5
var2 = -1

我只是在谈论一个例子。但是如果程序非常复杂,那么因为func1.m在三个点调用func2.m,我可能会对func1.m的哪一部分在func2.m生成var2 = 3感到困惑

所以,如果我可以打印"行号"当前行(包括上层函数的行号),那么它对调试非常有用。

有这样的事吗?

1 个答案:

答案 0 :(得分:1)

您可以使用dbstack来确定调用此函数的调用函数的哪一行。您可以在调用堆栈中专门查找func1

stack = dbstack();
[~, ind] = ismember({stack.name}, 'func1');
disp(stack(ind).line)

话虽如此,设置条件断点然后使用dbupdbdown或MATLAB工作区浏览器导航到父级和子级工作区更好弄清楚出了什么问题。