2017-02-07 8 views
0

Ich habe eine Datenmatrix (XW_region), die Größe 3x4x81x97 ist. Anders ausgedrückt, XW_region wird indiziert als (Tag, Zeit, Lat, Lon), so dass es 4 Lat/Lon-Gitter (d. H. Karten mit XW_region-Werten) pro Tag für 3 Tage gibt, was zu insgesamt 12 Lat/Lon-Gittern führt.Wie mache ich 3x4x81x97 Matrix in (lange) Spaltenvektor in Matlab

z.B. Größe (XW_region) = 3 4 81 97

Ich möchte jeden XW_region-Wert aus jeder Gitterzelle von jedem Zeitpunkt jedes Tages nehmen und sie in einen (langen) Spaltenvektor setzen. Von dort möchte ich einen Boxplot der Daten erstellen. Ich weiß, wie man den Boxplot macht, man muss nur die Daten in einem Spaltenvektor zusammenfassen.

Muss ich die Squeeze-Funktion verwenden, um jede Karte nach Tag und Uhrzeit aufzubrechen?

Danke!

+2

'reshape (XW_region, [], 1)' sollte die Aufgabe erledigen. –

+1

'XW_region (:)'? – bla

+0

umformen (XW_region, [], 1) funktioniert super - danke! –

Antwort

3

Ich bin sicher, dass dies ein Duplikat irgendwo ist, aber das ist wahrscheinlich das, was Sie wollen:

XW_region(:) 

mehr über den Spalt Operator sehen here.

2

Neben @ bla ist vollkommen richtige Antwort, manchmal ist es nützlich reshape stattdessen zu verwenden:

reshape(XW_region, [], 1); 

(Dieses Muster ist hilfreich in Fällen, in denen das, was Sie in eine Spalte drehen wollen, ist bereits ein Ausdruck, der Indizierung).