mファイルのプロット出力を回避する機能はありますか?
つまり、ファイルの先頭に関数 (clc など) を配置すると、すべてのプロット関数がブロックされます。
組み込みのプロット関数を独自のものでオーバーロードできます (関数内または同じディレクトリにネストされています)。
function myfun(a,b)
plotting = false;
plot(a,b);
plot(b,a);
function varargout = plot(varargin)
if plotting
[varargout{1:nargout}] = builtin('plot',varargin{:});
end
end
end
コースmyfun
を変更しない限り、を呼び出しても何も起こりません。plotting=false
組み込み関数のオーバーロードに関する追加情報: http://www.mathworks.nl/support/solutions/en/data/1-18T0R/index.html?product=ML&solution=1-18T0R
これを行う単一のコマンドについては知りませんが、コードを少し追加するだけで実現できます。
% Declare a variable for skipping at the top of your .m file
skip = 1; %example, 1 = skip, 0 = plot
% do things....
% Then nest your plot commands
if (skip == 0) % wants to plot in this case
% Whatever plot code in here
plot(x,y);
end
あなたが要求したようなきれいな単一の機能ではないことはわかっていますが、それでうまくいくはずです。それが役立つことを願っています!:)
また、必ずしも独自の .m ファイルで作業していない場合、またはスクリプトが非常に長い場合、これは実用的ではない可能性があることも理解しています。
以下を使用して、すべてのmatlab プロットを非表示にすることができます。
set(0, 'DefaultFigureVisible', 'off');
に変更off
するとon
、プロセスが逆になります (これにより、すべてのプロットがオフになるため、おそらくこれを行う必要があります!)
その行を m ファイルの先頭に追加してから、
close all;
set(0, 'DefaultFigureVisible', 'on');
最後まで。
プロットの後に書くこともできclose all
ます。それらはプロットされますが、すぐに閉じられます。きれいではありませんが、機能します。