一种方法是使用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)
...
如果你碰巧只想要一个子函数所在的主函数和M文件的名称,那么另一个有用的函数是mfilename
。
不知道这些的计算成本是多少,但我想,简单地传递函数名称即使不那么优雅也会更便宜。