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

variable size

 

Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2010, 15:15     Titel: variable size
  Antworten mit Zitat      
Hallo!

ich versuche ein struct mit ein paar Parametern abzuspeichern
Code:

save test.mat p;
 

Allerdings erhalte ich nach einiger Zeit die Fehlermeldung:

??? Error using ==> save
Maximum variable size allowed by the function is exceeded.
To request support for 64-bit arrays in this function
please send this error to 64bit@mathworks.com

Das wundert mich sehr, da p laut whos nur 23728 Byte groß ist. Andere auch größere Variablen lassen sich weiterhin ohne Probleme abspeichern. Woran kann das liegen?

vielen Dank im vorraus für alle Antworten

Thomas
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: 09.12.2010, 16:27     Titel: Re: variable size
  Antworten mit Zitat      
Hallo Thomas,

Wie Dir ja schon selbst aufgefallen ist, läuft da etwas merkwürdiges ab. Wenn wirklich "whos p" nur ein paar KiloBytes anzeigt, sollte SAVE eine solche Meldung auf keinen Falle erzeugen.

Nun ist es aber möglich unter 64 bittigem Matlab in einer MEX-Funktion z.B. negative Dimensionen zu setzen oder den Memory-Manager von Matlab anderweitig aus dem Tritt zu bringen.

Untersuche dochmal alle Felder des Structs genauer.

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

Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2010, 07:44     Titel:
  Antworten mit Zitat      
Nach einem Neustart hat Matlab es geschafft das struct zu speichern. Allerdings ist es über 1GB groß.

Die Ursache ist eine Funktion die ich mit abgespeichert habe. Wenn ich diese lösche und anschließend noch einmal eintrage funktioniert alles richtig.

Code:

p = rmfield(p,'h');
p.h = @(v)p.a0+p.a1*sqrt(v);
 


Ohne das rmfield (also nur die zweite Zeile) funktioniert es im übrigen nicht! Eigentlich müsste das Feld aber überschrieben werden?!
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.