2013-12-19 72 views
2

我想知道是否有一种方法知道什么功能称为我的功能“fun_a”运行fun_a时。我知道我可以通过将信息作为参数发送给“子功能”来追踪“父功能”,但如果可能的话,我想避免这种情况。知道父功能

非常感谢

回答

4

一种方法是使用dbstack

% In a sub-function or function called by another 
st = dbstack; 
st(1).name % The function's name 
st(2).name % The function caller's name (parent) 
... 

另一个有用的功能是mfilename如果你碰巧只想主要功能和M-文件的名称,其中子函数驻留。

不知道这些算法的计算成本是多少,但我想象一下,简单地传入函数名将会更便宜,即使不那么优雅。