2012-05-21 46 views
0

我有四個matlab代碼,每個代碼都會生成一個plot,如何將所有的plot合併成一個plot來顯示每個plot的轉換?從不同的matlab文件繪製

+0

我們需要更多的信息。你能否展示每個文件如何產生它的情節的簡短例子?你能描述一下你想如何組合這些情節(都在同一個軸上,或者在不同的軸上嗎?) – Alex

+0

y5 = [ku1; ku2; ku3; ku4; ku5; ku6; ku7; ku8; ku9]; x5 = [5; 10; 15; 20; 25; 30; 35; 40; 45]; (3) 圖(3) plot(x5,y5,'ok'); 因此,從一個matlab代碼現在我想結合從不同文件的所有四個繪圖到一個因果是一個進展,我想顯示進展和它在同一軸上相同的情節和相同的X和Y值。我不能將所有的四個代碼結合在一起,因爲他們加載了所有不同的txt文件, – user1407074

回答

0

如果你想所有四個是在同一個圖(圖說1),那麼你可以這樣做:

%% In PlotCode1.m 
figure(1) 
hold on 
...%your plotting code 

%% In PlotCode2.m 
figure(1) 
hold on 
...%your plotting code 

如果你運行各個PlotCode.m文件,無需關閉或清除圖1那麼所有的線將顯示在同一個數字上。

或者,您可以將每個不同的繪圖文件轉換爲將圖形編號作爲輸入的函數。例如:

% In PlotCode1.m 
    function PlotCode1(num) 
    figure(num) 
    hold on 
    %Your plotting code 

% In PlotCode2.m 
    function PlotCode2(num) 
    figure(num) 
    hold on 
    %Your plotting code 

現在你可以調用這些功能的每一個腳本:

fignum = 2; 
PlotCode1(fignum) 
PlotCode2(fignum) 

而現在一切都將在圖2

+0

嗨@kitchenette我試過了不清除和關閉任何數字的方法,但它的工作請試着解釋我更好的第二種方法謝謝四個代碼是 'y5 = [ku1; ku2; ku3; ku4; ku5; ku6; ku7; ku8; ku9]; x5 = [5; 10; 15; 20; 25; 30; 35; 40; 45]; 圖(3) 圖(X5,Y5,「OK」);' 它只是相同的代碼上述所有四個M檔感謝 – user1407074

+0

@ user1407074--我猜你有說5組座標:x1,y1 ... x5,y5,並且您想在同一個圖上將它們相互對應。那麼你如何將所有的x和所有的y都疊加到矩陣中,以便x1在第一行,x2在第二行,等等...... X = [x1'; X2' ; ...; x5']; Y = [y1'; y2'; ...; y5'],然後繪製(X,Y)。 – kitchenette

2

如果要繪製多行繪製在相同的圖中,可以使用hold on例如:

plot(x1,y1,'ok');  
hold on 
plot(x2,y2,'or'); 

如果你是SA穎,它們都形成一個單一的線,然後嘗試串連您的輸入向量是這樣的:

%Mock input 
x1 = 0:9; 
x2 = 10:19; 
x3 - 20:29; 
x4 = 30:39; 
y1 = 2*x1 -20; 
y2 = 2*x2 -20; 
y3 = 2*x3 -20; 
y4 = 2*x4 -20; 
%Example of plotting concatenated vectors 
plot([x1;x2;x3;x4], [y1;y2;y3;y4]); 
+0

是的,我忘了提及'hold on'。謝謝! – kitchenette