我有一个 Matlab 脚本 A,它可以自己运行,也可以由另一个脚本调用。我想在脚本 A 中输入一个 if
语句,以检查脚本是由自身运行还是由另一个脚本调用。我该如何检查?
最佳答案
你应该看看 dbstack
。
和:
以下是从 File Exchange 上发布的 iscaller
函数中窃取的。
function valOut=iscaller(varargin)
stack=dbstack;
%stack(1).name is this function
%stack(2).name is the called function
%stack(3).name is the caller function
if length(stack)>=3
callerFunction=stack(3).name;
else
callerFunction='';
end
if nargin==0
valOut=callerFunction;
elseif iscellstr(varargin)
valOut=ismember(callerFunction,varargin);
else
error('All input arguments must be a string.')
end
end
这种方法归功于 Eduard van der Zwan 。