2013-02-26 25 views
0

我有一個很大的循環,產生了很多圖。我在代碼中添加了功能,並希望可以選擇將一系列圖形與子圖一起放入一個圖形中,還是將圖形繪製爲單個圖形。我試圖用下面的代碼來做到這一點,但它不起作用。Plot和Subplot

figure 
if (SubplotOPT == 0) 
    subplot(2,2,1); 
end 

的想法是,如果SubplotOPT == 0不滿足,則該代碼將產生一個單獨的數字,但是,我認爲,MATLAB是做一個插曲,無論if語句的。

+0

但不行,你能詳細說明一下嗎?會發生什麼呢?這聽起來像是當你不期待它看到一個「subplotted」的數字時。另外,你可以在代碼前後給出更多的背景嗎? – macduff 2013-02-26 23:23:13

+0

我在一分鐘前就明白了。上面的代碼產生了獨立於循環的位置的子圖。如果(SubplotOPT == 0) subplot(2,2,1);如果(SubplotOPT == 0) 否則子圖(1,1,1)結束 – 2013-02-26 23:25:05

回答

1

試試這個:

for i=1:3 
figure(i) 
    if i==3 
     subplot(2,1,1) 
      plot(rand(1,100)) 
    else 
      plot(rand(1,100)) 
    end 
end 

這裏的常客圖進行循環,只有符合特定的條件創建一個插曲人物創建。

0
if (SubplotOPT == 0) 
    subplot(2,2,1); 
else 
    subplot(1,1,1); 
end 
+0

不需要在該代碼中寫入「子圖(1,1,1)」。一個簡單的'劇情'應該做...除非你重寫同一個數字並且不清除它... – 2013-02-26 23:30:23

1

我很不滿意或者前兩個解決方案,所以這裏是我走在它:

% Should we add a subplot, or create a new figure & axes 
if (SubplotOpt == 0) 
    ax = subplot(2,1,1); 
else 
    f = figure; 
    ax = axes(); 
end 

plot(0:.01:2*pi, sin(0:.01:2*pi), 'Parent', ax); 

基本上我已經從繪圖代碼抽象出來的插曲/圖碼,它使閱讀和編輯變得更加容易。