I'm wondering if there is a way to know by what function is called my function "fun_a" when running fun_a. I know that i could track the "parent function" by sending information as an argument to the "child function" but i would like to avoid that if possible.
Thanks a lot
One way is using 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)
...
Another useful function is mfilename
if you happen to just want the name of the main function and M-file in which a sub-function resides.
No idea what the computational cost of these are, but I imagine that simply passing in the function name is going to be cheaper even if less elegant.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With