Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Praktikant Toolentwicklung Matlab (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Fellbach

Abschlussarbeit / Praktikum: Entwicklung Matlab (m/w)
Branche: Informationstechnologie, Elektrotechnik, Elektronik
GIGATRONIK Technologies GmbH - Ulm

Studentische Mitarbeit - Fahrzeugmessungen
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Berlin

Werkstudent (m/w) High End GNSS Simulation mit modernsten Signalgeneratoren
Branche: Mess-, Regel-, Automatisierungstechnik, Telekommunikation, Nachrichtentechnik
ROHDE & SCHWARZ GmbH & Co. KG - München

Praktikant Testsystemaufbau (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Sindelfingen

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Modulare Matrix in Tabelle im Matlab Datastore? accessible?

 

Was würdet ihr mir raten, wäre am erfolgsversprechendsten?
andere Programmiersprache
0%   0% [0]
Map Reduce (Matlab)
0%   0% [0]
Datastore, Tall Arrays (Matlab)
0%   0% [0]
Parallel Computing Toolbox (Matlab)
0%   0% [0]
Stimmen insgesamt: 0
.

matlab_overkill
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2017, 17:06     Titel: Modulare Matrix in Tabelle im Matlab Datastore? accessible?
  Antworten mit Zitat      
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 Rolling Eyes
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 17.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 24.08.2017, 18:00     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab_overkill
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2017, 09:01     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 25.08.2017, 14:25     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab_overkill
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 24.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2017, 15:22     Titel:
  Antworten mit Zitat      
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. -.-
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 26.08.2017, 20:30     Titel:
  Antworten mit Zitat      
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
Code:

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


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.