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

Plot als jpeg mit definierter Größe speichern, wie geht da

 

Stockbetter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2010, 00:33     Titel: Plot als jpeg mit definierter Größe speichern, wie geht da
  Antworten mit Zitat      
Hallo und danke schon einmal für jede Hilfe!

Ich habe folgendes Problem:
Ich berechne mit meinem MATLAB Programm eine 3D Oberfläche. Diese möchte ich anschließend gerne mit Labels und ein paar Einstellungen als .jpeg abspeichern. Dabei soll das JPEG-Bild dann eine feste Größe von ca. 7cm Breite und 6cm Höhe haben. Dies ist nötig, damit ich das Bild in Word einfügen kann und die Labels immer noch die vorgegebene Größe von Arial, 10, fett haben. Sobald ich das Jpeg in Word skalieren würde, würde ich ja auch die Schriftgröße mitskalieren, was ich nicht will...

Mein Programmcode:
Code:

% Einstellungen für alle Grafiken
set(0, 'DefaultAxesFontSize', 10);
set(0, 'DefaultAxesFontWeight', 'bold');
set(0, 'DefaultAxesFontName', 'Arial');
set(0, 'DefaultAxesTickDir', 'in');
set(0, 'DefaultAxesGridLineStyle', '-');

% Ausgabe als Bild
% create new figure

newfigure = figure;

% Es wird im neuen Fenster nochmal geplottet

surfc(XI1mikro,YI1mikro,ZI,'EdgeColor','none','FaceColor','interp','FaceLighting','phong');
axis tight  
zlabel(gca,'Norm des elektrischen Felds in V/m')  
xlabel(gca,'x in µm','Rotation',20.0)
ylabel(gca,'y in µm','Rotation',-30.0)

% print the new figure

name=[GModeName,'_Strahlpropagation_Nahfeld'];
print(newfigure,'-djpeg','-r300',strcat(name,'.jpeg'));

% close the new figure

close(newfigure)

 


In diesem Stück Code ist noch nichts zur Größeneinstellung, das habe ich erst mal absichtlich rausgelassen, da es ja nicht klappt bisher.
Ich habe es bisher versucht mit (in allen nur erdenklichen Varianten):

Code:

set(gcf, 'PaperUnits', 'centimeters');
set(gcf,'Position',[0 0 7 6])
 


Der saveas Befehl hat mich auch nicht weiter gebracht. Und am Anfang die figure mit figure('Position',[bla bla]) in die richtige Größe zu bringen hat auch nicht funktioniert... Das Jpeg hat immer die gleiche Größe. Ich bin so langsam am verzweifeln...

Ich hoffe, dass mir jemand bei meinem Problem helfen kann!
Danke und Grüße,
Chris


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.11.2010, 11:23     Titel:
  Antworten mit Zitat      
Moin,

Du kannst mal folgendes versuchen. Wandel Deine Grafik in ein Bild um und passe die Bildgröße an:

Code:
bild=getframe(gcf);
I=frame2im(bild);
N=130;  % sind die Pixel des Bildes pro Seitenlänge
g=imresize(I,[N N],'bilinear');  % oder entspr.
imwrite....


Wenn Du 1 Seitenlänge änderst, ändert sich natürlich im gleichen Verhältnis auch die andere Seite. Wenn Du Deine Maße strikt einhalten willst/mußt würde das bedeuten, dass Du die Pixel umverteilen mußt, mit reshape. Aber das dürfte nicht einfach werden.

Das ist eine möglich Methode. Mag sein, dass es noch einen geraderen Weg zu Deiner Bildgröße gibt.

Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.11.2010, 15:33     Titel:
  Antworten mit Zitat      
Da habe ich doch übersehen, dass:

g=imresize(I,[N N],'bilinear'

in:

g=imresize(I,[M N],'bilinear')

zu einem anderen Seitenverhältnis führt, also auf Dein Seitenverhältnis angepaßt werden kann.

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Stockbetter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2010, 21:10     Titel:
  Antworten mit Zitat      
Super, danke für deinen Tipp, werde ich gleich mal ausprobieren Smile
 
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.