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

Abmessungen von Plots

 

MrSnoot
Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 18.02.2009, 20:26     Titel: Abmessungen von Plots
  Antworten mit Zitat      
Hi,

ich erstelle Plots und lasse diese automatisch speichern:
Code:
eval(['print -dpng ' num2str(i) '.png']);

Die Grafiken sind dann immer 1201×901 Pixel groß. Kann ich diese Größe ändern? Irgendwie müssen die 1201×901 Pixel ja auch zustande kommen.

Ich bräuchte 640×480 Pixel, und das ganze muss eine Pixelgrafik sein.
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 19.02.2009, 08:34     Titel:
  Antworten mit Zitat      
Moin,

zu allererst: KEIN EVAL benutzen wo es absolut nicht nötig ist.

Ich denke du müsstest ein bisschen an der Auflösung drehen:
Code:
h = figure;
plot(h,-1:.1:1,sin(-1:.1:1));
print(h,'-dpng','-r150',[num2str(i) '.png']);


An der Option '-rxxx' kannst du ja mal drehen, vllt. hilft das ja.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
MrSnoot
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 19.02.2009, 20:29     Titel:
  Antworten mit Zitat      
Hü,

das mit der Auflösung hatte ich probiert, aber da komme ich mit -r80 nur auf 641×480 - also 1 Pixel zu breit Confused

Das kann ich dann allerdings via Batchverarbeitung um 1 Pixel croppen. Zwar etwas umständlich, aber wenn es nicht anders geht.



eval war übrigens das einzige, was bisher fehlerfrei geklappt hat. Deine Lösung liefert bspw. immer:
Zitat:
??? Error using ==> plot
Data must be a single matrix Y or a list of pairs X,Y

Error in ==> temp at 48
plot(h,-1:.1:1,sin(-1:.1:1));

(ich hab eine 3D-Grafik, x y z)
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.02.2009, 23:06     Titel:
  Antworten mit Zitat      
Hallo,

da hat Steve falsches Handle übergeben, plot erwartet Axes-Handle nicht Figure-Handle.

Code:

h = figure;
% Einfach h (handle) entfernen
plot(-1:.1:1,sin(-1:.1:1));
print(h,'-dpng','-r150','test.png');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 20.02.2009, 10:28     Titel:
  Antworten mit Zitat      
Embarassed

Aber mit 'gca' sollte es funktionieren, oder?

Code:

h = figure;
% Einfach h (handle) entfernen
% oder für die axes einen handle definieren
plot(-1:.1:1,sin(-1:.1:1));
print(gca,'-dpng','-r150','test.png');
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2009, 11:03     Titel:
  Antworten mit Zitat      
Ne, eigentlich nicht, denn print braucht ja ein figure handle, also h oder gcf.
 
MrSnoot
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 20.02.2009, 11:06     Titel:
  Antworten mit Zitat      
Okay, danke für die Antworten. Werd mal schauen, ob das was wird; da ich teils per Schleife über 3000 Plots generiere wäre es schlecht, wenn sich pro Plot ein eigenes Fenster öffnet Wink


Kann mir noch jemand sagen, warum ich eval nicht benutzen sollte?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2009, 11:10     Titel:
  Antworten mit Zitat      
Hier etwas über das 'evil eval':http://www.mathworks.com/support/tech-notes/1100/1103.html
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2009, 11:18     Titel:
  Antworten mit Zitat      
MrSnoot hat Folgendes geschrieben:
... da ich teils per Schleife über 3000 Plots generiere wäre es schlecht, wenn sich pro Plot ein eigenes Fenster öffnet Wink


Dann lass den Kram mit den figures weg und mach einfach sowas:
Code:
x=0:0.1:2*pi;
y=sin(x);
for k=1:3
    plot(x,k*y);
    name=['test_' num2str(k) '.png'];
    print(gcf,'-dpng','-r150',name);
end
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 20.02.2009, 11:53     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
Ne, eigentlich nicht, denn print braucht ja ein figure handle, also h oder gcf.


*Asche über mein Haupt* Wird Zeit, dass ich endlich wieder intensiver mit Matlab arbeiten kann...
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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 - 2024 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.