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

Speicherproblem beim Plot

 

gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 11:35     Titel: Speicherproblem beim Plot
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem und weiss nich wie ich das lösen kann.
Ich möchte die Ergebnisse einer Fourier-Transformation plotten, wobei über 200 Dateien habe und jede wir in ein anderes Figure geplottet. Das Problem ist, dass der Plot jedesmal bei der 66 Datei stoppt und ich bekomme folgende Fehlermeldung:
-------------------------------------------------------------------------------------

Warning: Insufficient memory to render 1201-by-901 Z-buffer
> In E:\matlabR2006b\toolbox\matlab\graphics\private\render.p>render at 145
In print at 267
In saveas at 159
??? Error using ==> graphics\private\render
Error using ==> graphics\private\render
Error using ==> graphics\private\render
Bad data returned by HARDCOPY. Not calling IMWRITE.

Error in ==> saveas at 159
print( h, name, ['-d' dev{i}] )
-------------------------------------------------------------------------------------
Der Programmcode ist:

Code:

  for l=1:i
        [pathstr namestr] = fileparts(names{l});
        figure(l);
        plot(f{l},abs(N_Fourier{l}(1:length(f{l}))),'.-');
        xlabel ('Frequenz [Hz]')
        ylabel ('Amplitude')
        title(namestr);  
        saveas(l, namestr,'png'); % Bilder noch schnell speichern
    end


Ich sehe den Fehler nicht, kann mir jemand helfen?

Danke! Smile

Gruss,
Petra


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 11:46     Titel:
  Antworten mit Zitat      
Hi,

vielleicht hilft es, nicht alle Figures offen zu lasse, (also figure(l) mal auskommentieren) oder die Schleife portionsweise laufenzulassen, also z.B. von 1-50, dann von 51-100 usw.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 12:38     Titel:
  Antworten mit Zitat      
Hi,

danke für den Tip, ich habe beides ausprobiert - figure(l) auszukommentieren und dann portionsweise laufen lassen. Trotzdem kommt die gleiche Fehlermeldung Sad.

Wenn ich das stückweise laufen lasse, funktioniert es nur vopn 1-50, bei 5-100 oder höher dann nicht mehr.

Woran kann das liegen, irgendeine Idee?

Gruss,
Petra
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.09.2008, 13:16     Titel:
  Antworten mit Zitat      
Moin,

müssen die Sachen denn überhaupt in einem Fenster geöffnet werden --> schaust du dir das überhaupt alles an, oder geht es dir nur ums Speichern?

Wenn es nur ums Speichern geht, dann sollte folgendes helfen:
Code:

for l=1:i
    [pathstr namestr] = fileparts(names{l});
    h = figure(l,'Visible','off');
    plot(f{l},abs(N_Fourier{l}(1:length(f{l}))),'.-');
    xlabel ('Frequenz [Hz]')
    ylabel ('Amplitude')
    title(namestr);  
    saveas(l, namestr,'png'); % Bilder noch schnell speichern
    close(h)
end


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 13:56     Titel:
  Antworten mit Zitat      
Danke, Alex!

Es geht wirklick nur um Speichern, ich habe es mit deinem Vorschlag versucht, aber da bekomme ich die Fehlermeldung:

??? Error using ==> figure
Too many input arguments.


Ich weiss nicht mehr weiter! Sad

Gruss,
P.
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 14:10     Titel:
  Antworten mit Zitat      
Hi,

klappt es mit
Code:
for l=1:i
    [pathstr namestr] = fileparts(names{l});
%%    h = figure(l,'Visible','off');
    plot(f{l},abs(N_Fourier{l}(1:length(f{l}))),'.-');
    xlabel ('Frequenz [Hz]')
    ylabel ('Amplitude')
    title(namestr);  
%%%    saveas(l, namestr,'png'); % Bilder noch schnell speichern
    saveas(gcf, namestr,'png'); % Bilder noch schnell speichern
%%    close(h)
end
?
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 14:29     Titel:
  Antworten mit Zitat      
Jaaa, es kat geklappt! Very Happy
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 18.09.2008, 14:30     Titel:
  Antworten mit Zitat      
Stimmt, in meinem Fall könnte es auch reichen das "l" rauszunehmen:
Code:
for l=1:i
    [pathstr namestr] = fileparts(names{l});
    h = figure('Visible','off');
    plot(f{l},abs(N_Fourier{l}(1:length(f{l}))),'.-');
    xlabel ('Frequenz [Hz]')
    ylabel ('Amplitude')
    title(namestr);  
    saveas(h, namestr,'png'); % Bilder noch schnell speichern
    close(h)
end


Das sollte fast das gleiche Ergebnis produzieren, wie der Code von nschlange, allerdings wird die figure nicht angezeigt bei mir, was Zeitvorteile bringen sollte...

Gruß
Alex

/edit: Danke nschlange !!!
blödes copy&paste
_________________

>> 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?

Zuletzt bearbeitet von steve am 18.09.2008, 15:18, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 14:42     Titel:
  Antworten mit Zitat      
Dann müsste man aber auch
Code:
schreiben. Wink
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.