Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB 7 für Ingenieure: Grundlagen und Programmierbeispiel

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Reshape 3D in 2D Matrix

 

Maloja

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2020, 12:02     Titel: Reshape 3D in 2D Matrix
  Antworten mit Zitat      
Hey Alle!

Ich bin noch unbewandert mit Matlab und habe darum nicht wirklich eine Vorstellung wie ich folgendes Problem anzugehen habe:

Ich habe eine 9 x 7 x 10 matrix die ich gern umformen würde in eine 10 x 63 Matrix.
Und zwar ist mein Ziel dass in den Input Matrix jeder gleiche Wert in allen 10 Iterationen der 3D der zu einer Kombination der 9 * 7 Zeilen passt in einer Spalte gelistet wird. Die 3D soll dann als Zeile fungieren.

ZB:
Input:

matrix(:,:,1) =
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
.
.
.

matrix(:,:,2) =
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
.
.
.

Output m(10,63):
1 1 2 3 .
2 1 2 3 .
3 1 2 3 .
4 1 2 3 .
. . . .

ich hoffe mein Beispiel ist klar geworden, danke an alle schonmalfür eure Hilfe und viele liebe Grüße


Harald
Forum-Meister

Forum-Meister


Beiträge: 22.168
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.09.2020, 12:58     Titel:
  Antworten mit Zitat      
Hallo,

die 1-4 im Output sind nur die Zeilennummern? Dann
Code:
M = repmat(reshape(1:63, 7, 9)', 1, 1, 10);
N = reshape(permute(M, [3 2 1]), 10, 63);


Falls nicht, ist mir nicht klar, wie diese 1-4 aus den Daten generiert werden.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Maloja

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2020, 13:07     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine Antwort, genau so war es gemeint.
Bloß standen die Zahlen dort als Stellvertreter für meine Werte, das beudetet das ganze soll mit Indizes (?) anstatt den konkreten Zahlen von 1:63 passieren, sorry für die Verwirrung
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.168
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.09.2020, 14:06     Titel:
  Antworten mit Zitat      
Hallo,

mir ist nicht klar, was du mit den Indizes meinst.
Hilft dir denn der Ansatz?

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Maloja

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2020, 14:09     Titel:
  Antworten mit Zitat      
Hi Harald,

ich meine, dass in meiner tatsächlichen matrix nicht die Werte 1 bis 63 vorkommen sondern andere Zahlen zwischen 0 und 5. Ich hatte 1 - 63 nur gewählt um besser den Output verdeutlich zu können.

Das beudetet ich müsste bei deinem Vorschlag wahrscheinlich

M = repmat(reshape(meineMatrix, [7, 9])', 1, 1, 10);

einsetzen

LG und danke
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.168
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.09.2020, 14:32     Titel:
  Antworten mit Zitat      
Hallo,

die erste Zeile war nur, um die Beispielmatrix zu generieren.
Du brauchst nur die zweite Zeile.

Code:
N = reshape(permute(deineMatrix, [3 2 1]), 10, 63);


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 ;)
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


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


Copyright © 2007 - 2020 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.