重複の可能性:
Matlab で現在の m ファイルの場所を検索する
Maltabのコマンドウィンドウに出力を提供している関数を見つける方法を知っている人はいますか? 多くの関数を含むコードを作成しました。コマンド ウィンドウに出力しましたが、その原因となっている関数が見つかりません。ありがとう !
重複の可能性:
Matlab で現在の m ファイルの場所を検索する
Maltabのコマンドウィンドウに出力を提供している関数を見つける方法を知っている人はいますか? 多くの関数を含むコードを作成しました。コマンド ウィンドウに出力しましたが、その原因となっている関数が見つかりません。ありがとう !
すべての出力が独自のコードによって出力される場合、すべてのfprintf
およびdisp
呼び出しを独自の関数呼び出しに簡単に置き換えることができます。オプションで、すべての出力の前に関数名を付けることができます。
コードは次のとおりです。
getfunctionname.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
mainfunction.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