MATLAB畫圖之多個圖以子圖的形式合為一個圖


解決問題:已經畫好了多個figure,在不重復添加畫圖程序時,將多個圖合為一個圖。

      通常我們會將各個圖單獨畫出來看效果,但是寫文章過程中,經常為了排版等問題,需要將幾個圖分別以子圖的形式合為一個圖,這時候使用subplot,然后將各個圖重新在子圖中畫出,但是這種方法,我們需要將這些的畫圖程序重新寫一遍或者復制一遍,在這里我們使用一個創建子對象的方法實現,不需要再添加畫圖程序。

      MATLAB中的圖像,實際上是一個對象集合,打開任意圖像,輸入gcf就顯示當前圖像的對象組成:

 

其中與圖像內容相關的子對象為:Children和CurrentAxes。

每個坐標軸對象(CurrentAxis)又有自己的子對象:

 

 解決方法:

如果將兩個圖做為子圖重繪到新的figure,即需要將其中的坐標軸對象導出,復制到新的figure的子圖中。

程序如下:

clear;
clc;
close all;
t = 0:0.001:10;
y1 = sin(t);
y2 = cos(t);
 
figure(1);
plot(t,y1);
 
figure(2);
plot(t,y2);
 
fig(1) = get(figure(1), 'CurrentAxes');                                            
fig(2) = get(figure(2), 'CurrentAxes');
figure(3);
subplot(2,1,1);
axChildren = get(fig(1),'Children');
copyobj(axChildren, gca);
subplot(2,1,2);
axChildren = get(fig(2),'Children');
copyobj(axChildren, gca);

程序運行結果:

figure 1:

 

figure 2:

 

 figure 3:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM