|
|
Aufbau einer Block-Hankelmatrix |
|
Speedy24 |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 10.08.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.05.2022, 11:10
Titel: Aufbau einer Block-Hankelmatrix
|
|
|
|
|
Hallo zusammen,
ich möchte gerne eine Block-Hankelmatrix aufbauen. Eine Hankelstruktur sieht wie folgt aus.
Jedes Kästchen mit gleicher Farbe steht für eine Untermatrix beliebiger quadratischer Dimension. z.B. 3x3 oder 27x27.
Die Berechnung der jeweiligen Untermatrix passiert in einer Schleife von 1(Eintrag Links oben) bis zum letzten Eintrag 9(Rechts unten). Die Anzahl der Blöcke ist aber beliebig und kann sehr groß werden.
Aktuell werden die Ergebnisse der Untermatrix wie in diesem Beispiel von 1 bis 9 in einem Cell-Array gespeichert und dann mit einer separaten Schleife in die Blockhankel Struktur geschrieben.
Das konvertieren des Cellarrays und die entsprechende Schleife verlangsamen das Programm deutlich und es ist nicht wirklich elegant.
Ich suche daher die Möglichkeit die Zuordnung der Untermatrizen über die gleiche Schleife womit sie auch berechnet werden hinzubekommen. Z.b. in dem es einen Befehl gibt wie ich die Neben(Querdiagonalen) beschreiben kann, oder die linke untere Dreiecksmatrix um dann noch zu flippen. Für Anregungen wäre ich sehr dankbar!
Beste Grüße
Beschreibung: |
|
Download |
Dateiname: |
2022_05_13_11_50_49_Window.png |
Dateigröße: |
22.46 KB |
Heruntergeladen: |
230 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 13.05.2022, 13:35
Titel:
|
|
Hallo,
auf Anhieb finde ich es schwierig, die Schleifen sinnvoll und effizienzsteigernd zu kombinieren, da die Anzahl der Iterationen unterschiedlich sind und in der zweiten Schleife auf mehrere RM zugegriffen wird.
Bei dem Beispiel gibt es ja eher keine Performance-Probleme. Kannst du Parameter zur Verfügung stellen, bei denen du Performance-Probleme hast?
Befehle in die Richtung der gesuchten wären
diag
oder
tril
.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Speedy24 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 10.08.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.05.2022, 10:01
Titel:
|
|
Hallo Harald,
vielleicht war die Ausgangsfragestellung nicht günstig formuliert. Auch große Matrizen werden in der Regel schnell berechnet. Ich konnte die Konvertierung durch cell2mat umgehen und das Ganze noch etwas beschleunigen.
Aber eine sinnvolle Kombination der for Schleifen will mir wirklich nicht einfallen.
Jetzt kriege ich aber zum Teil das Problem das die Matrix zu groß für den Speicher wird?! Gibt es eine Möglichkeit das irgendwie zu umgehen?
Bei der Dimension 48000x48000 ist mein Arbeitsspeicher 32 Gb voll und das Programm wird abgebrochen.
Beste Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 18.05.2022, 10:11
Titel:
|
|
Hallo,
Zitat: |
Aber eine sinnvolle Kombination der for Schleifen will mir wirklich nicht einfallen. |
Sehe ich wie gesagt auch nicht.
Zitat: |
Jetzt kriege ich aber zum Teil das Problem das die Matrix zu groß für den Speicher wird?! Gibt es eine Möglichkeit das irgendwie zu umgehen? |
Wenn die Matrix dann sehr viele Nullen enthält, ist es speichersparend (und teilweise auch schneller), mit dünnbesetzten Matrizen zu arbeiten.
https://www.mathworks.com/help/matlab/sparse-matrices.html
Speicher sparen kann man auch durch den Einsatz anderer Datentypen wie single, int8, uint8, ... . Ob das sinnvoll ist, hängt von deinen Daten ab.
Sollte das nicht ausreichend weiterhelfen, wäre es interessant mehr darüber zu erfahren, was du mit dieser Matrix weiter machen möchtest.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|