Verfasst am: 17.02.2021, 10:25
Titel: Flexibles "repelem" für 3D matrix
Hi ich möchte eine 3D Matrix umstrukturieren, jedoch scheint mein Vorhaben zu "kompliziert" zu sein, um es effizient in z.B. einer Loop zu coden. Ich habe es bisher nur manuell geschafft. Eventuell hat einer von euch eine idee? Freue mich über Vorschläge
Ich hab eine 63x2x6 Matrix (siehe anhang)
Mein Ziel ist es die Matrix folgendermaßen umzustrukturieren (und zwar nach Möglichkeit in einer loop?):
- Dritte Dimension soll bleiben (6 Iterationen behalten)
- Nun würde ich gerne für jede Iteration der dritten dimension:
- Die Werte beider Spalten für die Werte 2 - 7 der ersten Spalte 6 mal
"repelem".
- Die Werte beider Spalten für die Werte 2 - 8 der ersten Spalte 7 mal
"repelem".
- Die Werte beider Spalten für die Werte 3 - 9 der ersten Spalte 7 mal
"repelem".
- Die Werte beider Spalten für die Werte 4 - 10 der ersten Spalte 7 mal
"repelem".
- Die Werte beider Spalten für die Werte 5 - 10 der ersten Spalte 6 mal
"repelem".
Und all diese "repelemns" untereinander schreiben für jede Iteration auf der dritten Spalte.
Wie gesagt manuell klappt das aber es ist sehr aufwendig, freue mich über feedback von euch Grüße Berto
.. und so für alle sechs Iterationen auf der dritten Dimension:
- Die Werte beider Spalten für die Werte 4 - 10 der ersten Spalte 7 mal
"repelem".
- Die Werte beider Spalten für die Werte 5 - 10 der ersten Spalte 6 mal
"repelem".
Man beachte dass bei der ersten und letztens Iteration der dritten Dimension nur 6 mal, anstatt wie bei den anderen Iterationen, 7 Mal repelem angewandet wird.
(Zumal beim ersten von dir Kopierten Output repelem offensichtlich nur 5x angewand wurde.)
Was sind die Ausgangswerte?
Erstelle ein Minimalbeispiel (vom einfachen zum schweren!)
Und beschreibe daran deine derzeitigen Schritte mit Code.
Nutze die Code-umgebung.
Was ist "und so für alle sechs Iterationen auf der dritten Dimension:"
Soll repelem nur auf der dritten Matrixdimension angewandt werden?
Oder stehen in der dritten Dimension die Zahlen für repelem?
Oder verwendest du einfach nur Iteration falsch und meinst, dass du über die dritte Dimension iterieren möchtest?
(6 Iterationen ist nicht das gleiche wie über eine Dimension, die zufällig die Mächstigkeit 3 hat, zu iterieren.)
Wenn letzteres gemeint ist, dass versuche doch zuerst einmal ein einer nx2 - Matrix das Problem zu lösen, bzw. hier als Minimalbeispiel darzustellen.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
temp(43:63,:,1)=[]; %Das wäre mein nächster Schritt gewesen, um für jede Wiederholung auf der dritten Dimension einzelns die Spaltenr auszulöschen, die überflüssig sind
temp(43:63,:,1)=[]; %Das wäre mein nächster Schritt gewesen, um für jede Wiederholung auf der dritten Dimension einzelns die Spaltenr auszulöschen, die überflüssig sind
temp(43:63,:,:)=[];
Wieso "überflüssig"? Was ist das Kriterium um zu entscheiden, welche Daten überflüssig sind?
Statt mehrdimensionale Arrays zu erstellen und zusammen zu fügen, ist es im Allgemeinen effizienter, einfach einen passenden Indexvektor zu benutzen. Statt also die Daten per
repelem
zu vervielfältigen könnte es auch reichen diesen Befehl zum Erstellen des Indexvektors einzusetzen.
In deinem Beispiel ist immer noch nicht klar, was du als Ausgabe bekommen möchtest.
temp(43:63,:,1)=[]; %Das wäre mein nächster Schritt gewesen, um für jede Wiederholung auf der dritten Dimension einzelns die Spaltenr auszulöschen, die überflüssig sind
temp(43:63,:,:)=[];
(*: ich würde sogar nur mit einer Indexmatrix arbeiten, aber für die Übersichtlichkeit sind einzelne Vektoren am Anfang einfacher)
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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
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.