|
|
Modulare Matrix in Tabelle im Matlab Datastore? accessible? |
|
|
Was würdet ihr mir raten, wäre am erfolgsversprechendsten? |
|
andere Programmiersprache
|
|
|
Map Reduce (Matlab)
|
|
|
Datastore, Tall Arrays (Matlab)
|
|
|
Parallel Computing Toolbox (Matlab)
|
|
|
Stimmen insgesamt: 1 |
|
matlab_overkill |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 24.08.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.08.2017, 17:06
Titel: Modulare Matrix in Tabelle im Matlab Datastore? accessible?
|
|
|
|
|
Hallo Leute,
nachdem ich lange suchte und nicht fündig geworden bin doch mal mein eigener Thread, da dieser in bedingter, gekürzter Form sicherlich auch für andere Fragen nützlich sein kann.
Nun Schritt für Schritt:
Ich möchte eine Matrix erstellen, der Form (x,x).
x ist eine Zahl größer 80 000, %schon zu groß für den Matlabspeicher wenn man zeros benutzt und das ist schon die performancebeste Lösung statt, zwei for- Schleifen.
Dies ist nur eine Teilmatrix also wenn ich sage jede Teilmatrix hat nur einen Wert so wäre das so vorstellbar.
teilmatrix1=(1:80000,1:80000)=1;
teilmatrix2=(1:80000;80001:85000)=2;
teilmatrix3=(80001:85000;1:80000)=3;
teilmatrix4=(80001:85000;80001:85000)=4;
UND diese dann als Elemente in eine 85000x85000 Tabelle.
Um dann anhand von den Zeilen- und Spaltenbezeichnungen Operationen durchzuführen.
Würde nachdem ich diese Matrix initalisiert hätte, Spalte für Spalte neue Werte reingelesen, falls man das irgendwie über Indexing bei dieser Größe machen kann.
wie gesagt die 80000 ist noch die kleines Zahl an quadratischen Matrizen die ich so habe.
Dinge die man benutzen könnte, wäre der datastore, aber da weiß ich nicht wie ich den über Indexing manipulieren kann, tall-arrays waren bis jetzt auch nicht hilfreich.
Ein weiteres Problem das ohne datastore auftauchen würde, wäre das überschreiten des Matlab Memory beim laden.
Und ich muss noch vorgefertigte Matlab- Funktionen auf diese Matrix anwenden.
Ich hoffe jemand kann mir bei diesem fast schon misused- Problemchen helfen.
Viele Grüße,
matlab_overkill
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.08.2017, 18:00
Titel:
|
|
Hallo,
am ehesten würde ich Distributed Arrays auf einem Cluster vorschlagen.
Die entscheidende Frage ist für mich aber, ob die Matrix wirklich so erstellt werden muss und was ggf. damit gemacht werden soll. Man könnte sich auch alternative Speichermöglichkeiten vorstellen, z.B. Unterschied zu benachbarten Elementen als dünnbesetzte Matrix.
Grüße,
Harald
|
|
|
matlab_overkill |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 24.08.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.08.2017, 09:01
Titel:
|
|
Hey Harald,
das mit den Distributed Arrays habe ich mir auch schon überlegt, also Spalte für Spalte generieren und dann in die Datastore Tabelle reinladen, also in die entsprechende Spalte, aber das misslingt mir bis weiten, da ich den Datastore nicht über Indexing erreichen kann?
Weisst du wie das möglich wäre?
Und das Problem ist halt, dass es wirklich eine quadratische Matrix sein muss, um die Matlab- Funktion darauf anzuwenden -.-
Demnach ist eine gesparste Matrix auch nicht von nutzen.
Viele Grüße,
matlab_overkill
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.08.2017, 14:25
Titel:
|
|
Hallo,
Zitat: |
das mit den Distributed Arrays habe ich mir auch schon überlegt, also Spalte für Spalte generieren und dann in die Datastore Tabelle reinladen |
Datastores und Distributed Arrays sind vollkommen gegensätzliche Konzepte.
Zitat: |
da ich den Datastore nicht über Indexing erreichen kann? Weisst du wie das möglich wäre? |
Meines Wissens gar nicht. Das ist ja auch nicht der Sinn von Datastores.
Zitat: |
Und das Problem ist halt, dass es wirklich eine quadratische Matrix sein muss, um die Matlab- Funktion darauf anzuwenden -.-
Demnach ist eine gesparste Matrix auch nicht von nutzen. |
Dünnbesetzte Matrizen können genauso quadratisch sein wie 'normale' Matrizen.
Bitte auch auf die Frage eingehen
Zitat: |
ob die Matrix wirklich so erstellt werden muss und was ggf. damit gemacht werden soll |
Die Informationen sind ja extrem redundant. Was spricht dagegen, z.B. nur jeden 1000. Wert zu speichern?
Grüße,
Harald
|
|
|
matlab_overkill |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 24.08.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.08.2017, 15:22
Titel:
|
|
|
|
|
Hey,
Zitat: |
Dünnbesetzte Matrizen können genauso quadratisch sein wie 'normale' Matrizen. |
Wie erstelle ich solche dünnbesetzte Matrizen und sind solche gleich verarbeitbar, wie "normale" Matrizen ?
Zitat: |
ob die Matrix wirklich so erstellt werden muss und was ggf. damit gemacht werden soll |
Erstellt werden müssen muss sie so nicht, ich brauche einfach eine Matrix die Werte enthält ob bspw. Elemente vorhanden sind oder nicht. Genau dann muss da eine 1 oder ein numerische höherer Wert als 0 drin stehen, der Rest wo überall eine Null steht ist eigentlich egal, aber siehe jedoch meine Frage hier darüber .
Das Handling mit Funktionen muss halt noch Funktionieren so klappt jeder tausendste Wert nicht und auch eine adjacency geht nicht da ich darüber wieder die original- Matrix basteln müsste (die wiederum zu groß wäre etc) um diese dann zu Plotten.
Desweiteren wäre auch interessant, warum eine solche Matrix in der nur Nullen und Einsen darin stehen, so groß werden kann.
Habe zwischenzeitlich auch versucht eine Matrix mit beliebigen Werten zu erstellen über horzcat und einer for oder while- Schleife, beide brechen bei einer Matrix von ca 70000x3000 ab.
Viele Grüße,
matlab_overkill
PS: Ein Freund hat mir geraten ich solle C# machen, aber da gibts eben nicht so nette Funktionen wie Matlab diese hat. -.-
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.08.2017, 20:30
Titel:
|
|
Hallo,
Zitat: |
Wie erstelle ich solche dünnbesetzte Matrizen
|
Mit
sparse
.
Zitat: |
und sind solche gleich verarbeitbar, wie "normale" Matrizen ?
|
Nein, u.a. deswegen auch die Frage, was du mit den Matrizen machen möchtest. Eine Liste der unterstützten Funktionen bekommst du mit
Zitat: |
Desweiteren wäre auch interessant, warum eine solche Matrix in der nur Nullen und Einsen darin stehen, so groß werden kann. |
Stehen nun nur Nullen und Einsen drin (dafür würde sich logical anbieten) oder auch andere Zahlen? Falls andere, sind das Integer? Dann könnte sich z.B. uint8 anbieten.
Zitat: |
PS: Ein Freund hat mir geraten ich solle C# machen
|
In C# wird die Matrix ebensowenig in den Speicher passen.
Wieviel Speicher hast du denn?
Was zeigt
memory
an?
Es bleibt die Frage, was du mit dieser Matrix letztlich machen möchtest.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|