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

Brauche große Matrix Fehler Maximum variable size allowed..

 

hacke78
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 02.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2012, 12:26     Titel: Brauche große Matrix Fehler Maximum variable size allowed..
  Antworten mit Zitat      
Hallo
ich habe knappe 60.000 (59147) Punkte für die ich eine Distanzmatrix gerne berechnen würde, sprich 60kx60k Einträge. Bekomme natürlich wie erwartet folgenden Fehler :
Maximum variable size allowed by the program is exceeded.
Code:

matrix = zeros(length(points));
 

Kann man mehr Speicher irgendwie nutzen? Mit einer Auslagerung auf Festplatte vielleicht. Ich habe auch nur Windows XP mit einem Rechner mit 2 Gig Hauptspeicher zur Verfügung, da passt ja glaube ich sowieso nicht ein so großes Array hinein.
Grüße
Jan
Private Nachricht senden Benutzer-Profile anzeigen


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2012, 12:51     Titel:
  Antworten mit Zitat      
Das Problem kenne ich, Distanzmatrizen zu erzeugen inkl die Daten dazu in Matlab direkt vorzuhalten ist kaum möglich. Jedenfalls habe ich damit sehr schlechte Erfahrungen gemacht.

Ich habe inzwischen dies vollständig in C++ umgesetzt. Ggf kannst Du bei einer solchen Größenordnung die Berechnung in C/C++ auslagern und evtl dann nur die Ergebniss via Mex in Matlab importieren.
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: 28.06.2012, 22:36     Titel: Re: Brauche große Matrix Fehler Maximum variable size allow
  Antworten mit Zitat      
Hallo hacke78,

Dann schaue Dir die Matrix mal an. Eine 59147x59147 Matrix besitzt 3.5e9 Elemente, wobei sie als DOUBLE 8 Byte per Element benötigen. Damit benötigst Du einen freien zusammenhängenden Block von 28 GB im Speicher. Als Daumenregel ist dazu etwa dreimal so viel Speicher notwendig.

Mit einer 2GB Maschine is da nichts zu machen. Auch wenn man berücksichtigt, dass die Matrix symmetrisch ist hilt das nicht viel. Ein 64-Bit-System ist auf alle Fälle nötig.

Der Vorschlag, dies in C++ zu implementieren, wird nicht helfen, da auch dann genau der gleiche Speicherplatz benötigt wird. Zwar ist es möglich die Matrix in C++ als einzelne Vektoren zu speichern, so dass der benötigte Speicher zumindest nicht zusammenhängend sein muss. Das ist in Matlab aber genauso möglich, z.B. als CELL, welches die einzelnen Vektoren enthält.

Was möchtest Du mit einer so großen Distanz-Matrix anfangen?

Gruß, Jan
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: 29.06.2012, 16:26     Titel:
  Antworten mit Zitat      
Hallo flashpixx,

Ich habe diesen Thread geteilt:http://www.gomatlab.de/allgemeines-.....rosser-arrays-t24371.html
Näheres dazu per PN.

Gruß, Jan
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.