2010-10-26 27 views
12

Ich habe eine 3D-Matrix mit den Dimensionen 6, 2 und 10. Ich möchte, dass die Zeilendimension die Positionen mit der Höhendimension wechselt, also 10-2-6. reshape erreicht dies nicht so, wie ich es möchte.Drehen einer 3D-Matrix in MATLAB

Wie kann das gemacht werden? Kann ich die Matrix drehen?

Antwort

17

Ich denke, Sie suchen nach permute. Für Ihren Fall ist es, permute(A,[3 2 1]);. Hier ist eine Beschreibung von permute aus der Dokumentation:

B = permute(A,order) die Dimensionen von A umlagert, so dass sie in der angegebenen Reihenfolge durch den Vektor Ordnung sind. B hat die gleichen Werte von A, aber Die Reihenfolge der Indices, die benötigt werden, um Zugriff auf ein bestimmtes Element ist neu angeordnet, wie in der Reihenfolge angegeben. Alle Die Elemente der Reihenfolge müssen eindeutig sein. Die Elemente der Reihenfolge müssen eindeutig sein.

Es ähnelt dem Transponieren einer 2D-Matrix.