|
|
|
Matrix in Blöcke zerlegen und neu zusammensetzen |
|
| SimonSt |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 23.10.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.10.2011, 14:40
Titel: Matrix in Blöcke zerlegen und neu zusammensetzen
|
 |
Hallo,
ich habe eine Matrix die so aussieht wie der obere dick umrandete Bereich im angehängten Bild. Diese möchte ich nun so umstellen, dass sie so aussieht, wie der untere dick umrandete Bereich. Dabei ist noch zu ergänzen, dass sowohl die Anzahl der Gruppen (jetzt von 1-4) und die Anzahl der Zeilen in den Gruppen (jetzt von 1-3) variable ist.
Wie kann ich das am cleversten lösen? Ich probiere hier schon eine ganze Zeit mit Schleifen rum aber bekomme nicht das gewünschte Ergebnis.
Vielen Dank,
Simon
| Beschreibung: |
|
 Download |
| Dateiname: |
gomatlab.png |
| Dateigröße: |
23.42 KB |
| Heruntergeladen: |
784 mal |
|
|
|
|
|
|
| eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 26.10.2011, 14:54
Titel:
|
 |
|
Zeig uns doch mal, was du bisher gemacht hast, dann lässt sich viel einfacher helfen!
|
|
|
|
| SimonSt |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 23.10.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.10.2011, 16:52
Titel:
|
 |
Das einzige was ich ohne Fehlermeldung hin bekomme, ist die Matrix in Gruppen zu zerlegen und diese auszugeben:
Ich will sie aber nicht nur ausgeben sondern sie wieder zusammensetzen, und das auch noch von hinten nach vorne.
|
|
|
|
| eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 26.10.2011, 19:09
Titel:
|
 |
|
|
|
| SimonSt |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 23.10.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.10.2011, 07:52
Titel:
|
 |
Die Seite hat mir ehrlich gesagt nicht wirklich weiter geholfen.
Ich habe das Problem jetzt so gelöst:
Ich bezweifle allerdings, dass der Code besonders effizient ist.
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.10.2011, 08:27
Titel:
|
 |
Hallo,
hier wäre mein Versuch. Das schöne: wenn du mehrere solcher Matrizen hast, muss der Indexvektor nur einmal neu berechnet werden.
Grüße,
Harald
P.S.: Danke übrigens für die Grafik, die das Problem sehr anschaulich darstellt!
|
|
|
|
| SimonSt |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 23.10.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.10.2011, 08:46
Titel:
|
 |
Ich habe das gerade mal mit einer 100000x6 Matrix getestet:
Meine Lösung: Elapsed time is 3.103906 seconds.
Deine Lösung: Elapsed time is 0.015528 seconds.
Jup, Deine Lösung ist definitiv effizienter , Danke!
| Harald hat Folgendes geschrieben: |
| P.S.: Danke übrigens für die Grafik, die das Problem sehr anschaulich darstellt! |
Och, ich hab ja auch was davon .
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.10.2011, 09:00
Titel:
|
 |
Hallo,
ein Grund für den Geschwindigkeitsunterschied ist sicher, dass in deiner Variante die Matrix B in jeder Iteration der for-Schleife wächst und damit oft im Speicher verschoben werden muss. Darauf weist übrigens auch der Editor hin, indem er das orange unterringelt (mit der Maus draufgehen).
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 - 2025
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.
|
|