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

Struktur löschen

 

Tim124

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 17:47     Titel: Struktur löschen
  Antworten mit Zitat      
Hallo!

Ich lade eine Datei mit
i = load('datei');

Die Datei enthält zwei double variablen, sowie eine Klasse mit einigen Properties, die meisten davon sind entweder classperf-objekte oder structures.

Leider bereiten mir diese Dinger Sorgen, weil sie unglaublich viel Arbeitsspeicher zu fressen scheinen.

Nun möchte ich von meinen Dateien immer nur eine laden, diese verwerten und sie anschließend löschen, damit ich mehr Platz habe.

Wenn ich die Datei jedoch mit 'clear i' lösche, sehe ich, dass MATLAB nicht viel Arbeitsspeicher hinzugewinnt.

Wie kann ich i richtig löschen?

Danke,
Tim


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.08.2011, 18:01     Titel:
  Antworten mit Zitat      
Hallo,

lade doch aus der MAT-Datei selektiv nur die Variablen, die du auch brauchst.

Code:
data = load('datei', 'var1', 'var2')


Die Variable (!) sollte man nicht i nennen, da das für sqrt(-1) steht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Tim124

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2011, 18:16     Titel:
  Antworten mit Zitat      
Hallo Harald,

die Datei heißt nicht i, das war nur hier als Beispiel, keine Sorge Smile

Ich habe mich wohl falsch ausgedrückt.
Ich habe mehrere mat-Dateien, die ich nacheinander laden muss. Von jeder mat-Datei brauche ich aber die gesamten Daten (es sei denn man kann irgendwie Klassen-Properties einzeln laden).

Ich will nur nicht mehrere der mat-Dateien gleichzeitig im Arbeitsspeicher haben...
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.08.2011, 19:14     Titel:
  Antworten mit Zitat      
Hallo,

du kannst keine MAT-Dateien im Speicher haben, sondern höchstens die darin enthaltenen Variablen.
Mit CLEAR sollte die betreffende Variable gelöscht und der Speicher freigegeben werden. Wenn das nicht geschieht, müsste man genauer untersuchen, welche Art Variablen genau dieses Verhalten aufweisen. Im schlimmsten Fall kann es auch an der mangelhaften Speicherverwaltung durch das Betriebssystem (Windows?) liegen.

Wie stellst du im übrigen fest, ob Arbeitsspeicher freigegeben wird? Wie groß sind die Variablen, wieviel Speicher wird (anscheinend) freigegeben?

Sofern die Variablen (!) in den verschiedenen MAT-Dateien (!) gleich heißen, sollten die Variablen der einen Datei auch einfach überschrieben werden, wenn du die neue Datei lädst.

Grüße,
Harald
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 - 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.