2016-08-07 17 views
1

Hallo Funktion Griff mit würde Ich mag die folgende in MatlabFigur Druck in Matlab

Es sei zu tun habe ich eine Funktion, die etwas Plots

function # call 1 
function # call 2 
function # call 3 
function # call 4 

Bedenken Sie, dass alle oben genannten Funktionen eine Figur plot in Matlab-Fenster. Wie kann ich schreibe die Funktionen, so dass es die Figur irgendwo speichern und dann kann ich so etwas wie diese verwenden -

subplot(2,2,1), # plot for call 1 
subplot(2,2,2), # plot for call 2 
subplot(2,2,3), # plot for call 3 
subplot(2,2,4), # plot for call 4 

Ich will nicht die einzelnen Figuren im Speicher speichern und die es wieder laden.

Eine sehr einfache Funktion ist wie folgt:

x = linspace(0,2*pi,100); 
y = sin(x); 
xmarkers = 0:pi/2:2*pi; % place markers at these x-values 
ymarkers = sin(xmarkers); 
figure 
plot(x,y,'b',xmarkers,ymarkers,'b*') 

Wenn ich dies mehrmals aufrufen wird es mehrere Figuren erzeugen, möchte ich es in ein subplot Format bringen.

+0

Können Sie die Funktionen anzeigen? –

+0

Ist es jetzt klar. Bitte sag es mir. Ansonsten werde ich es weiter erklären. – roni

+1

Sie können auch die Dokumentation lesen. Es ist alles in Ordnung, http://se.mathworks.com/help/matlab/ref/figure.html http://se.mathworks.com/help/matlab/ref/plot.html – patrik

Antwort

2

Ich habe ein Skript myplot.m, erstellt, die die Funktion myfunction ruft:

fig_handle1 = figure; 
gcf 

fig_handle2 = figure; 
plot(1:10); 
gcf 

myfunction(fig_handle1, 1); 
myfunction(fig_handle1, 4); 

Es schafft zwei Figuren und speichert die Griffe in fig_handle1 und fig_handle2. Die erste Figur wird nicht verwendet, die zweite Figur wird zum Zeichnen einer Rampe verwendet. gcf sagt Ihnen, welche Figur gerade aktiv ist. Wie Sie wollen plot bis zur ersten Zahl in myfunction, müssen Sie die richtige Ziffer übergeben. Das zweite Argument wird zeigen, welche subplot zu verwenden:

Der Inhalt der Funktion myfunction.m wie folgt aussieht:

function myfunction(fig_handle, subplot_no) 
    set(0,'CurrentFigure', fig_handle) 

    x = linspace(0,2*pi,100); 
    y = sin(x); 
    xmarkers = 0:pi/2:2*pi; % place markers at these x-values 
    ymarkers = sin(xmarkers); 

    subplot(2, 2, subplot_no); 
    plot(x,y,'b',xmarkers,ymarkers,'b*'); 
end 

Es nutzt set(0,'CurrentFigure', fig_handle) die aktuelle Zahl auf Ihre erste Zahl zu setzen und dann verwendet subplot(2, 2, subplot_no); die zur Auswahl Subplot Sie wollen. plot wird dann zu Ihrer ersten Figur zeichnen.

Aufruf myplot von der Kommandozeile gibt Ihnen folgendes Ergebnis:

Figures 1 and 2

Verwenden Sie die Debugging-Funktionalität zu Schritt durch den Code und sehen, was passiert.