2012-10-28 53 views
2

是否有任何函數可以避免m文件的繪圖輸出?避免繪圖/步驟/ ...輸出

我的意思是我在文件的開頭放置一個函數(如clc),然後所有的繪圖函數都被阻塞。

+0

不是我所知道的。但是你總是可以在'-nodisplay'模式下運行,而不用把GUI全部放在一起。 – angainor

回答

1

我不知道這樣做的單個命令,但您可以使用一小段額外的代碼來完成。

% 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文件,或腳本很長,這可能不實際。

0

你也可以在地塊後面寫close all,他們會被繪製出來,但會在瞬間關閉之後。它不乾淨,但工程。

1

你可以用你自己的(嵌套的函數內或在同一目錄)重載內建繪圖功能:當你打電話myfun,除非你改變當然plotting=false

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 

不會發生任何事情。

超載內置函數額外的信息:http://www.mathworks.nl/support/solutions/en/data/1-18T0R/index.html?product=ML&solution=1-18T0R

1

您可以所有 MATLAB地塊隱形搭配:

set(0, 'DefaultFigureVisible', 'off'); 

更改offon相反的過程(這你可能需要要做,因爲這會關掉全部你的地塊!)

你可以將該行添加到您的m文件的開頭,然後將

close all; 
set(0, 'DefaultFigureVisible', 'on'); 

加到最後。