我有一个 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

10-07 19:31
查看更多