Speichern Sie ein Grundstück, um eine JPEG-Datei in Matlab
Habe ich entworfen, das folgende GUI in dem gibt es eine Achse. Ich will speichern, um das Grundstück gezogen, in Ihnen zu einer jpeg-Datei. Allerdings, die Datei ist ein Bild der gesamten Abbildung Fenster. Das ist mein code:
X = 0:pi/100:2*pi;
Y = sin(X);
fh = figure;
Pan1 = uipanel(fh,'Units','normalized','Position',[0 0 0.5 1],'title',...
'Panel1');
Pan2 = uipanel(fh,'Units','normalized','Position',[0.5 0 0.5 1],'title',...
'Panel2');
haxes = axes('Parent',Pan2,'Units', 'normalized','Position',...
[0.25 0.25 0.5 0.5]);
hplot = plot(haxes,X,Y);
xlabel(haxes,'Time (second)');
ylabel(haxes,'Amplitude (meter)');
title(haxes,'Sine function');
FileName = uiputfile('*.jpg','Save as');
saveas(hplot,FileName);
Nicht bezogen auf deine Frage, aber warum jpg-format für ein Grundstück? Dies die Einführung von Artefakten.
Ich denke, das beste format für ein Bild ist jpeg. Sagen Sie mir, wenn ich falsch bin.
Ich verwenden .png für alle meine MATLAB-plots, die ich als Bilder gespeichert werden sollen. Sie kommen viel sauberer, als .jpg. Artikel, erklärt: "PNG funktioniert am besten für Vektor-Art-Grafiken mit harten Linien."
Danke für deinen Kommentar und link.
Vielleicht "Speichern einer Nebenhandlung, um eine JPEG-Datei in Matlab." wäre ein besserer Titel?
Ich denke, das beste format für ein Bild ist jpeg. Sagen Sie mir, wenn ich falsch bin.
Ich verwenden .png für alle meine MATLAB-plots, die ich als Bilder gespeichert werden sollen. Sie kommen viel sauberer, als .jpg. Artikel, erklärt: "PNG funktioniert am besten für Vektor-Art-Grafiken mit harten Linien."
Danke für deinen Kommentar und link.
Vielleicht "Speichern einer Nebenhandlung, um eine JPEG-Datei in Matlab." wäre ein besserer Titel?
InformationsquelleAutor julianfperez | 2011-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
saveas
speichert nur zahlen, nicht die einzelnen Parzellen.Wenn Sie eine Nebenhandlung oder ein Grundstück innerhalb eines uicontrol wie Sie haben, können Sie eine temporäre Kopie der plot, speichern, dann löschen Sie die temporäre Kopie:
Wenn Sie nicht wollen, dass die temporäre Kopie auf flash-up auf dem Bildschirm während des Kopierens Schritt können Sie die
'Position'
Eigenschaft der Abbildung zu erstellen, die es off-screen.Hoffe, das hilft!
Wenn die Antwort das problem löst, könnte bitte Kennzeichnen Sie ihn als angenommen? Danke.
Deine Antwort ist korrekt für meine anfänglichen Zwecke der Erstellung der image-Datei. Allerdings brauche ich auch, xlabel, ylabel und title, die Etiketten werden angezeigt. Dies ist der Grund, warum ich meine Frage selbst beantwortet stützend mich auf Ihre Antwort.
InformationsquelleAutor Sam Roberts
@Sam ' s Antwort ist vor Ort auf, ich möchte nur hinzufügen, dass Matlab ist schlau genug zu wissen, auf welche Art von Datei, die Sie speichern möchten, indem Sie die
FileName
string-variable. Wenn SieFileName
zu etwas, das endet in.jpg
können Sie ein jpeg speichert. Überprüfen Sie heraus diespart
docs zu sehen, alle anderen möglichen Dateitypen.InformationsquelleAutor eykanal
Bei Verwendung der saveas-Funktion zum erstellen von jpeg-die Auflösung ist anders als beim manuellen speichern Sie das Bild mit Datei-->Speichern unter..., Es ist mehr empfohlen, verwenden Sie hgexport statt, wie folgt:
Wird dies tun, genau wie beim manuellen speichern der Abbildung.
Quelle:
http://www.mathworks.com/support/solutions/en/data/1-1PT49C/index.html?product=SL&solution=1-1PT49C
InformationsquelleAutor Avico
Dies ist meine Lösung, basierend auf Sam Roberts und eykanal's Antwort:
InformationsquelleAutor julianfperez