WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

probleme beim automatischen export in eps mit der größe

 

die-kenny
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 17.05.11
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 07.08.2012, 23:31     Titel: probleme beim automatischen export in eps mit der größe
  Antworten mit Zitat      
Hallo,
ich möchte mehrere Plots, die ich generiere, automatisch mit einem Code in einem .m-File speichern und nicht jedes Mal per Hand.
Die Lösung habe ich schnell gefunden, indem ich den saveas-Befehl nutze.
Aber nun folgendes Problem, das ich nur gelöst bekomme, wenn ich es wieder auf dem händischen Weg löse, was ich ja eigentlich umgehen wollte:

Wenn ich die Abbildungen per Hand über "File" -> "Save as" -> "Auswahl von .eps als Dateiformat" speichere, sind sie genau so, wie sie als figure erzeugt wurden und ich sie auch abgespeichert haben will.
Wenn die Bild-Dateien über das .m-File erzeugt werden, scheint irgendwas mit der Größe nicht zu stimmen.
Die Position der linken und rechten Kante des Gitters und auch die Abmaße beider Dateien sind nicht mehr identisch. Diese Kanten sollen aber immer an der selben Stelle sein, so wie es auch der Fall ist, wenn ich die Dateien per Hand speichere. In der Schleife werden beide figures ja auch mit den gleichen Position-Werten erzeugt.

Dazu hier mal ein Beispiel-Code, der das verdeutlicht und im Anhang die eps-Dateien, die per Hand bzw. per Code gespeichert wurden, und .png-Dateien, bei der die Speicherung wiederum richtig erfolgt und zeigen, wie ich es haben möchte.

Code:
clear all
close all
for nr = 1:2
    if nr == 1
        x = 0:6000;    % Beispieldatensatz
        y = 1:6001;
        xachse = 'c_1 in m/s';
    elseif nr == 2
        x = 0:5000;   % Beispieldatensatz
        y = linspace(1,5,5001);
        xachse = '\rho_1 in kg/m^3';
    end

figure('Color','w','Position',[100 300 530 250]);
    axes('OuterPosition', [0.035 0.08 1 0.95]);
    plot(x,y,'LineWidth',1.5),
    xlabel(xachse)
    ylabel('y(t) x 10^{-3}')
    grid,
    set(gca,'Box','on', 'Position', [0.17 0.19 0.79 0.75]);
    set(gcf,'PaperPositionMode', 'Auto')
   
figdat = ['perCode_ZF',num2str(nr)];
saveas(gcf,[figdat,'.eps'],'epsc2')      
saveas(gcf,[figdat,'.png'])
end


Ich öffne die .eps-Dateien übrigens mit IrfanView, benutze Win7 und Matlab R2009a.

Offenbar macht der Befehl "saveas" nicht das selbe wie die Ausführung per Klick. Aber wieso nicht?
Und wie kann ich die Plots nun automatisch speichern, sodass die Bilddateien genau so (groß) sind, als würde ich sie per Hand speichern ohne dass ich es händisch mache?

Ach ja, den Befehl
Code:
print(f,'-depsc2','test.eps')

hatte ich auch schon probiert und der verursachte das gleiche Problem.

beispiel.rar
 Beschreibung:
Code-Beispiel + damit erzeugte Bilddateien

Download
 Dateiname:  beispiel.rar
 Dateigröße:  25 KB
 Heruntergeladen:  376 mal
Private Nachricht senden Benutzer-Profile anzeigen


die-kenny
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 17.05.11
Wohnort: Magdeburg
Version: ---
     Beitrag Verfasst am: 08.08.2012, 08:51     Titel:
  Antworten mit Zitat      
So, jetzt hab ich nach langer Suche doch noch eine Lösung gefunden. Inspiriert von dieser Seite: http://stackoverflow.com/questions/.....-same-way-as-using-save-a möchte ich euch des Rätsels Lösung nicht vorenthalten.

Mit dem Befehl
Code:
hgexport(gcf,'dateiname.ext')

wird der Befehl "File" -> "Save as..." im Menü des Figure-Fensters ausgeführt und das ist somit genau das, was ich suchte bzw. wollte.

Trotzdem versteh ich nicht, wozu dann die anderen Befehle (saveas und print) sind bzw. wieso sie es anders speichern und vorallem wie sie es anders speichern. Kann das jemand der Vollständigkeit halber erklären?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.