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

export_fig

 

hboeth
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 14:28     Titel: export_fig
  Antworten mit Zitat      
Hallo zusammen,
ich habe nun heraus gefunden, wie ich die figures mit der Fkt. export_fig abspeicher, jedoch habe ich noch folgendes Problem.
Ich habe eine Schleife und möchte für jedes i ein .png abspeichern und demnach auch so benennen.

Hierfür sollte eigentlich der folgende Code funktionieren, wenn ich mich nicht täusche:
Code:
for a = 1:5
plot(rand(5, 2));
export_fig(sprintf('plot%d.png', a));
end


ich bekomme aber hierbei folgenden Fehler angezeigt:
??? Undefined function or method 'export_fig' for input arguments of type 'char'.

Kann mir jmd helfen?

Danke und Grüße
Private Nachricht senden Benutzer-Profile anzeigen


hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 14:50     Titel:
  Antworten mit Zitat      
sorry, in diesem Fall ist es natürlich ein a anstatt ein i...
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.12.2010, 15:02     Titel: Re: export_fig
  Antworten mit Zitat      
Hallo hboeth,

ist die Funktion export_fig denn in einem Ordner, der im aktuellen Matlab-Path enthalten ist?
Code:


Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 15:29     Titel:
  Antworten mit Zitat      
ja, das klappt auch alles wunderbar wenn ich es ohne der schleife mache...da ich aber mehrere figures abspeichern muß, da ich mehrere trials habe, benötige ich es in der schleife...und nur da gibt matlab mir den fehler...??

also dies ist mein Program:

Code:
for i=1:length(dircontent)
    figure(i);
    fi = dircontent(i,1).name;
    signalEMG = load([fo fi]);    
    %ohne vastus
    for j=1%:size(signalEMG,2)-2
        subplot(size(signalEMG,2)-7,1,1)
        plot(signalEMG(:,1),signalEMG(:,j+3));
        legend('gast lat ri')
        ylim([0 0.07])
        subplot(size(signalEMG,2)-7,1,2)
        plot(signalEMG(:,1),signalEMG(:,j+4),'r');hold on;
        ylim([0 0.07])
        legend('gast med ri')
        subplot(size(signalEMG,2)-7,1,3)
        plot(signalEMG(:,1),signalEMG(:,j+7),'y');hold on;
        ylim([0 0.07])
        legend('gast lat le')
        subplot(size(signalEMG,2)-7,1,4)
        plot(signalEMG(:,1),signalEMG(:,j+8),'g');hold on;
        ylim([0 0.07])
        legend('gast med le')
    end
        cd(fo)
        export_fig(sprintf('plot%d.png', i));
end


die letze Zeile in der äußeren Schleife macht das Problem...

danke!! lg
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 15:34     Titel:
  Antworten mit Zitat      
oh nein, du hattest recht, weil ich vorher das cd(fo) gemacht habe, kannte er die fkt nicht mehr...

ok, super, das funktioniert jetzt. aber wie packe ich jetzt den path fo dazu...?
Weißt du wie das geht?

danke schonmal für die gute hilfe!!
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 15:36     Titel:
  Antworten mit Zitat      
ich glaube es funktioniert so:

Code:
    export_fig(sprintf([fo 'plot%d.png', i]));


jetzt geht es, aber er gibt mir noch eine Warnung:

Warning: Invalid escape sequence appears in format string. See help sprintf for valid escape sequences.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.12.2010, 16:02     Titel:
  Antworten mit Zitat      
Hallo hboeth,

Code:
export_fig(fullfile(fo, sprintf('plot%d.png', i));

Da waren gleich mehrere Fehler im SPRINTF-Befehl. Aber FULLFILE ist sowieso sicherer beim Erstellen von File-Namen mit Pfad.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 16:21     Titel:
  Antworten mit Zitat      
oh ja, super! ich danke dir, habe ich auch grad festgestellt...

jetzt klappt alles, danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 16:24     Titel:
  Antworten mit Zitat      
obwohl, weißt du evtl. auch noch wie ich in diesem Fall jetzt die .png noch in Größe und Qualtiät,...verändern kann?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.12.2010, 16:48     Titel:
  Antworten mit Zitat      
Hallo hboeth,

Das PNG hat die Größe der Figure. Was meinst Du mit Qualität ändern? Möchtest Du die Anzahl der Farben reduzieren?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 17:03     Titel:
  Antworten mit Zitat      
ja, ich benötige mein png aber etwas größer, deswegen versuche ich gerade die Größe zu ändern über
Code:
figure1 = figure('PaperSize',[20.98 29.68]);


bis jetzt klappt es aber noch nicht...

wenn ich meine figure so abspeichere wie sie erschenit, ist sie zu klein, da ich 6 subplots (= 6 Kanäle) darstelle, und damit wird die Qualität sehr schlecht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.12.2010, 18:04     Titel:
  Antworten mit Zitat      
Hallo hboeth,

Die Paper-Size ist wichtig, wenn Du den GhostScript-Printer-Driver verwendest, z.B. mit:
Code:

Dann am besten die PaperUnits auf 'points' stellen und die Breite und Höhe der PaperSize ist die Pixel-Anzahl des Ausgabe-Files.

Ansonsten bestimmt aber die Figure-Position die Größe der Grafik, z.B. für:
Code:
print -dbmp
% oder
printf -dpng
 

Was sagt den der Hilfe-Text von export_fig? Dot wird doch bestimmt erwähnt, wie man die Größe beeinflußt, oder?

Bist Du sicher, dass Du die Grafik als Pixel-Grafik exportieren möchtest?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 07.12.2010, 18:21     Titel:
  Antworten mit Zitat      
OK, das werde ich mal ausprobieren...

ALs Anhang findest du meine fig/ .png, so wie es jetzt gespeichert wird.
Das Problem ist, dass die Legende das Signal überdeckt...

hast du ein bsp. welches deine unteren Angaben und Hilfestellungen im .m file zeigt?

Danke für die gute Hilfe Jan!

plot2.png
 Beschreibung:

Download
 Dateiname:  plot2.png
 Dateigröße:  48.44 KB
 Heruntergeladen:  915 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.12.2010, 20:40     Titel:
  Antworten mit Zitat      
Hallo hboeth,

Zitat:
Das Problem ist, dass die Legende das Signal überdeckt...

Da Du ja nur eine Kurve pro Diagramm hast, brauchst Du eigentlich keine Legende. Ein Text würde reichen, und zwar links oben:
Code:

AxesH = subplot(size(signalEMG,2)-7,1,1);
text(0, 1, 'gast med', 'Units', 'normalized', 'Parent', AxesH, ...
   'VerticalAlignment', 'top', ...
   'HorizontalAlignment', 'left');
...


Zitat:
hast du ein bsp. welches deine unteren Angaben und Hilfestellungen im .m file zeigt?

Was meinst Du damit?

Die Legende sieht merkwürdig aus. Hast Du vielleicht lechts mit rinks verwechselt?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 12.01.2011, 14:54     Titel:
  Antworten mit Zitat      
hallo! Jetzt möchte ich das Gelernte von oben in einem anderen Program verwenden, und bekomme bei exakt gleicher Anwednung folgenden Fehler:

??? Undefined function or method 'print2array' for input arguments of type 'double'.

Error in ==> export_fig at 292
A = print2array(fig, magnify, renderer);

Kann mir jmd helfen?

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.