Wie ändere ich die Größe einer Matrix in MATLAB?

8

Angenommen, ich hätte eine 1-mal-12 -Matrix und ich wollte die Größe in eine 4-mal-3 -Matrix ändern. Wie könnte ich das tun?

Meine derzeitige Lösung ist irgendwie hässlich:

%Vor%

Gibt es einen besseren Weg, dies zu tun?

    
bastibe 27.04.2009, 13:51
quelle

3 Antworten

24

reshape ist natürlich die richtige Lösung, wie von @gnovice angegeben.

Ein nettes Feature von reshape ist, dass es dies ermöglicht:

%Vor%

Wenn Sie also nicht wissen, wie viele Spalten es gibt, berechnet reshape es für Sie. Gleichermaßen wird reshape die Anzahl der Zeilen ausfüllen, wenn Sie das nicht angeben.

%Vor%     
user85109 27.04.2009, 14:14
quelle
12

Probieren Sie die Funktion RESHAPE aus:

%Vor%

Beachten Sie, dass die Matrix B spaltenweise mit Elementen von A gefüllt wird (dh Spalten werden von oben nach unten gefüllt und von links nach rechts verschoben).

Beispiel:

%Vor%     
gnovice 27.04.2009 13:52
quelle
9

um die Gnovice-Lösung zu erweitern:

Wenn Sie eine andere Reihenfolge der Matrixkonstruktion benötigen, verwenden Sie transpose (der Operator) oder permute() , um die Reihenfolge der Dimensionen zu ändern, nachdem Sie reshape() aufgerufen haben.

    
Jason S 27.04.2009 14:02
quelle

Tags und Links