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

 

hk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2009, 16:41     Titel: Speicherproblem
  Antworten mit Zitat      
Hallo zusammen,
habe folgendes Problem:

ich steuere gerade eine Digicam über Matlab an,d.h. genauer gesagt:
ich sage der Kamera nur, dass es in bestimmten Zeitintervallen Bilder abspeichern soll. Diese Prozedur sollte schon ca. 5 Stunden dauern.
T=[0 0 0 60*60 60 1]';

c0=clock*T;
c=c0;
k=0;
while clock*T-c0<3000;

if clock*T-c>0.00001
c=clock*T;
clock*T-c0
obj = videoinput('winvideo', 1);
bild = getsnapshot(obj);
imwrite(bild, 'A.jpg');
else
end;
end;

Soweit so gut: leider sagt er nach ca. 10 Minuten, dass er nicht genügend speicher hat, und den Befehl "getsnapshot" nicht ausführt.

Gibt es irgendein Befehl, mit dem ich den Cache zwischendurch löschen kann??

Ich habe mal ein kleines Skript geschrieben, um die Rechenzeit zu überprüfen,
und der entstehende degressive Verlauf kann ich mir nur mit dem zumüllen des Speichers erklären.

clear all
account=0;
T=[0 0 0 60*60 60 1]';
d=clock*T;
j1=0;

while j1<1;
account=account+2;
if account>1;

a=clock*T-d;
A=[a account-1;clock*T-d account];
plot(A(:,1),A(:,2))
hold on;
size(A);
else
end;
drawnow();
clear A;
end;


Vielen Dank im Voraus.
HK


Olli
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 19.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2009, 21:58     Titel:
  Antworten mit Zitat      
Du könntest die Variable in der dein Bild gespeichert wird halt leer machen oder ganz löschen, bzw vorher schon mit der gewünschen größe devinieren, denn dann hält Matlab den Speicher frei.

der Befehl den du dafür suchst wäre "clear" bzw "variable_name = []

du solltest eventuell auch nochmal deinen Code durchgehen, denn da sind ein paar unnötige Zeilen drin

Code:

c0=clock*T;
c=c0;  %kannst du ja grad c0 nehmen
k=0;
while clock*T-c0<3000;

if clock*T-c>0.00001
c=clock*T;
clock*T-c0   %wird irgendwie auf nix draufgelegt also unnötig?
obj = videoinput('winvideo', 1);
bild = getsnapshot(obj);
imwrite(bild, 'A.jpg');
else   %kein else zweig also weglassen
end;
end;
 
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.