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

Anpassung der maximalen Variablengröße

 

Evron
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 22.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2009, 14:23     Titel: Anpassung der maximalen Variablengröße
  Antworten mit Zitat      
Hallo zusammen,

beim Anlegen einer sehr sehr großen Matrix bekam ich von Matlab die Fehlermeldung, dass sie die maximale Variablengröße überschreitet. Bei Scilab habe ich einmal gelesen, dass es eine Systemvariable gibt in der dieser Wert festgeschrieben wird, gibt es eine solche Variable oder eine andere Einstellmöglichkeit auch bei Matlab?
Private Nachricht senden Benutzer-Profile anzeigen


Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2009, 14:40     Titel:
  Antworten mit Zitat      
Hi
Vielleicht hilfe dir ja
Code:

x= sparse(Matrix) % Sparsames Speicherformat
 

ich weiß allerdings nicht in wie weit sich das auf die maximale Größe
der Matrix auswirkt.

Gruss Fragewurm[/u]
_________________

Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 30.11.2009, 14:44     Titel:
  Antworten mit Zitat      
Hallo,

wenn das so einfach wäre... Die max. mögliche Größe eines Matlab-Arrays ergibt sich aus der Größe des längsten zusammenhängenden Speicherbereiches, den man mit dem Befehl

Code:


anzeigen kann (in der Zeile ... Maximum possible array). Ein Array aus double-Zahlen benötigt pro Element 8 Bytes, also kann man sich die max. Elementzahl leicht ausrechnen.

Je länger eine Matlab-Session dauert, desto stärker wird der RAM-Speicher fragmentiert und der max. Speicherbereich immer kleiner. Da hilft auch die pack-Funktion wenig oder gar nichts, das ist eher ein Problem des Betriebssystems.

Man kann aber die Größe dieses zusammenhängenden Speicherbereiches vergrößern, indem man MATLAB z.B. mit der Option -shield medium oder (Achtung! Kann evtl. schiefgehen!) mit -shield maximum startet. Siehe Dokumentation, ich denke ab Release 2009a.

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Evron
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 22.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2009, 15:48     Titel:
  Antworten mit Zitat      
Hallo,

danke euch beiden für die Hinweise. Sparse ist tatsächlich noch eine Idee, da die Matrix ohnehin bei mir sehr stark mit nullen besetzt sein wird. Ich habe nur gelesen, wenn sie voll besetzt wird, wird es dann unangenehm, da sie dann wesentlich mehr Platz als eine normale Matrix benötigt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2009, 16:00     Titel:
  Antworten mit Zitat      
Hallo,

dünnbesetzte Matrizen aus Doubles benötigen pro Nicht-Null-Element größenordnungsmäßig 16 Byte, während vollbesetzte Matrizen aus Doubles 8 Byte pro Element brauchen. Das rührt daher, dass bei den dünnbesetzten Matrizen noch die Position mitgespeichert werden muss.

Die Verwendung dünnbesetzter Matrizen lohnt sich also speichertechnisch, wenn (deutlich) weniger als die Hälfte der Elemente von 0 verschieden sind. Für Berechnungen (Matrix- oder Vektoroperationen) lohnt sich das unter etwa 10-30% von 0 verschiedene Elemente. Im Zweifelsfall experimentieren.

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