可能重复:
在 Matlab 中查找当前 m 文件的位置
有谁知道如何在 Maltab 中找到向命令窗口提供输出的函数?我编写了一个包含许多函数的代码,我已经输出到命令窗口,但我找不到哪个函数负责。谢谢 !
可能重复:
在 Matlab 中查找当前 m 文件的位置
有谁知道如何在 Maltab 中找到向命令窗口提供输出的函数?我编写了一个包含许多函数的代码,我已经输出到命令窗口,但我找不到哪个函数负责。谢谢 !
如果所有输出都由您自己的代码打印,您可以轻松地将 allfprintf
和disp
调用替换为您自己的函数调用,这些函数调用可以选择在所有输出前面加上函数名称。
这是代码:
获取函数名.m:
function [CurrentFunctionName, PreviousFunctionName] = getfunctionname()
CurrentFunctionName = '';
PreviousFunctionName = '';
MyStack = dbstack('-completenames');
if (length(MyStack) < 2)
error('Function getfunctionname.m cannot be called from MATLAB console.');
elseif (length(MyStack) == 2)
CurrentFunctionName = MyStack(2).name;
else
CurrentFunctionName = MyStack(2).name;
PreviousFunctionName = MyStack(3).name;
end
return
myprintf.m:
function myprintf(varargin)
global PrefixOutputWithFunctionName
if (PrefixOutputWithFunctionName)
[~, PreviousFunctionName] = getfunctionname;
fprintf('### %s.m:\n', PreviousFunctionName);
end
disp(sprintf(varargin{:}));
return
mydisp.m:
function mydisp(varargin)
global PrefixOutputWithFunctionName
if (PrefixOutputWithFunctionName)
[~, PreviousFunctionName] = getfunctionname;
fprintf('### %s.m:\n', PreviousFunctionName);
end
disp(varargin{:});
return
主函数.m:
function mainfunction()
global PrefixOutputWithFunctionName
% set PrefixOutputWithFunctionName to false to disable prefixing.
PrefixOutputWithFunctionName = true;
% the code goes here...
% example output.
myprintf('some text...\n some more text...');
return