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

Matrixdimension umsortieren

 

p.nietnagel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 19.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2010, 20:03     Titel: Matrixdimension umsortieren
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine für mich etwas schwierige Aufgabe gestellt bekommen:
ich habe eine Matrix (Test) der Dimensionen: 129 x 465 x 6 x 22.
Mich interessiert jetzt nur die zweite Dimension: 465.
Die stellt die Messwerte von 31 Kanälen dar (d.h.: 1 bis 31 von 465 sind Kanäle 1 bis 31, 32 bis 61 von 465 sind Kanäle 2 bis 31, usw), die jeweils miteinander korreliert sind (wobei eine Korrelation eines jeden Kanals mit sich selbst ausgespart wurde).
Ich möchte jetzt diese Dimension (das dürfte ja ein Vektor sein, oder?) so umbasteln, dass zum Schluss die Matrix so sortiert ist:
Code:

31 30 29 28 27 26 25 24 .  .  .  .  2  1
30 29 28 27 26 25 24 23 .  .  .  .  3  2
29 28 27 26 25 24 23 22 .  .  .  .  4  3
28 27 26 25 24 23 22 21 .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  .  .  .  .  .
2  3  4  5  6  7  8  9  .  .  .  .  29 30
1  2  3  4  5  6  7  8  .  .  .  .  30 31
 


Ich hab versucht, erstmal die Dimension aus der 4er Matrix rauszuziehen. Da bin ich schon gescheitert. Ich hab es versucht mit:
Code:
justchan = Test([],:,[],[]);

da kommt allerdings raus: 0 x 465 x 0 x 0. Hm Question

Mit dem Befehl permute kann ich die Aufgabe auch nicht lösen. Und slice ist in dem Fall auch nicht das, was ich brauche, oder?

Irgendwie stehe ich auf dem Schlauch.


Vielen Dank im Voraus für wertvolle Tipps!


Grüße,
p.nietnagel
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2010, 21:11     Titel:
  Antworten mit Zitat      
Hallo,

dass
Code:
Test([],:,[],[]);

nichts ergibt, ist nicht weiter erstaunlich: du sagst, er soll in der 1., 3. und 4. Dimension KEINE Elemente nehmen.

Zitat:
Ich möchte jetzt diese Dimension (das dürfte ja ein Vektor sein, oder

Gute Frage. Was willst du eigtl machen?
Wenn du im 2-dimensionalen eine Spalte haben möchtest, wäre das
Test( :,N), wobei N die Spaltennummer wäre. Du kannst selbst im 2D nicht sagen, du willst eine der Dimensionen haben (jedenfalls verstehe ich es nicht).

Die Matrix, die du angegeben hast, kann es jedenfalls nicht geben. Sie hat in der ersten Spalte 31 Elemente, in der zweiten 29 Elemente usw.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
p.nietnagel
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 19.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2010, 21:51     Titel:
  Antworten mit Zitat      
Hi,

ok, sorry, dass habe ich etwas unkorrekt dargestellt:
also:
Code:


31 30 29 28 27 26 25 24 .  .  .  .  2  1
30 29 28 27 26 25 24 23 .  .  .  .  1  2
29 28 27 26 25 24 23 22 .  .  .  .  2  3
28 27 26 25 24 23 22 21 .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  .  .  .  .  .
2  1  2  3  4  5  6  7  .  .  .  .  29 30
1  2  3  4  5  6  7  8  .  .  .  .  30 31
 


Also, irgendwie liesse sich das mit einer Schleife loesen:
test = []
k = 0
Code:

for i = 1:31
   for j = i+1:31
        k = k +1
        x(k)=i
        y(k)=j
.... hier fehlt dann was, denn test=reshape(meinematrix,x,y) funktioniert nicht.
   end
end

 


soweit bin ich schon gekommen. Geht das mit reshape?
Die Dimensionen am Ende sind wohl 31 x 31. Ich duerfte ja als Ausgang 465 x1 haben (oder 1 x465?). Jedenfalls sind es eben immer wieder diese 31 Kanaele.
Ich hab schon ewig mit reshape rumprobiert, aber eine andere Funktion finde ich auch nicht, die das macht, was ich will. Bin ich voellig auf dem Holzweg?



Vielen Dank im Voraus!


Gruesse,
p.nietnagel
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.