WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

3D Matrix auf 2D Matrix reduzieren

 

Martinuk
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2012, 20:34     Titel: 3D Matrix auf 2D Matrix reduzieren
  Antworten mit Zitat      
Hallo,

ich möchte gerne eine 3D-Matrix zu einer 2D-Matrix umwandeln.

Ausgangssituation:
Code:
A(:,:,1) =

     1     2
     3     4


A(:,:,2) =

     5     6
     7     8


A(:,:,3) =

     9    10
    11    12


Ziel ist es die Daten wie folgt umzusortieren
Code:
ergebnis =

     1     2     3     4
     5     6     7     8
     9    10    11    12


Hat jemand eine Idee wie man das am elegantesten lösen kann. Es funktioniert sicher irgendwie mit reshape, möglicherweise kombiniert mit permute. Allerdings komme ich leider nicht zum gewünschten Ergebnis.

Würde mich um konstruktive Antworten freuen.
Private Nachricht senden Benutzer-Profile anzeigen


Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2012, 21:44     Titel:
  Antworten mit Zitat      
Hallo,

hier ist wohl eine mögliche Lösung, würde mich allerdings freuen wenn das jemand bestätigen könnte bzw. einen besseren Lösungsweg hat.

Code:

% Eingabe
A(:,:,1) = [1 2; 3 4];
A(:,:,2) = [5 6; 7 8];
A(:,:,3) = [9 10; 11 12];

A = permute(A, [2 1 3]);
X = (reshape(A,4,[]))'

% Ausgabe
A(:,:,1) =

     1     2
     3     4


A(:,:,2) =

     5     6
     7     8


A(:,:,3) =

     9    10
    11    12


Z =

     1     2     3     4
     5     6     7     8
     9    10    11    12
Private Nachricht senden Benutzer-Profile anzeigen
 
Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2012, 23:12     Titel:
  Antworten mit Zitat      
Hallo,

hier ein kleiner Nachschub. Dazu hätte ich eine Frage.

Nehmen wir mal folgendes an A=(2x2x100)
Code:

A(:,:,1) = [0.0010 + 0.0019i, 0.9982 - 0.0002i;
                0.9982 - 0.0002i   0.0010 + 0.0019i] %komplexe Zahlen

ans =

   0.0010 + 0.0019i   0.9982 - 0.0002i
   0.9982 - 0.0002i   0.0010 + 0.0019i


Sortiere ich diese nun um mit
Code:

tmpA = permute(A(:,:,1), [2 1 3]);
resS = (reshape(tmpA,4,[]))'

resS =
 
   0.0010 - 0.0019i   0.9982 + 0.0002i   0.9982 + 0.0002i   0.0010 - 0.0019i
 


Nun meine Frage, wieso ändert sich da Vorzeichen der Imaginärteile? Ist hier ein Fehler in der Umsortierung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2012, 23:26     Titel:
  Antworten mit Zitat      
hier die Antwort.

Der Befehl
Code:
resS = (reshape(tmpA,4,[]))'

ändert das Vorzeichen des Imaginärteils, wobei mir nicht 100%ig klar ist wieso.
Abhilfe schafft aber der transpose Befehl welcher equivalent ist zu
Code:
resS = (reshape(tmpA,4,[])).' % . ist wichtig
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button 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.