Main Content

reshape

Umformen eines Arrays durch Neuanordnung vorhandener Elemente

Beschreibung

Beispiel

B = reshape(A,sz) dient zum Umformen von A mithilfe des Größenvektors, sz, um size(B) zu definieren. reshape(A,[2,3]) formt beispielsweise A in eine 2x3-Matrix um. sz muss mindestens 2 Elemente enthalten und prod(sz) muss mit numel(A) identisch sein.

Beispiel

B = reshape(A,sz1,...,szN) dient zum Umformen von A in ein sz1x...xszN-Array, wobei sz1,...,szN die Größe jeder Dimension angibt. Sie können eine einzelne Dimensionsgröße von [] angeben, um die Dimensionsgröße automatisch zu berechnen, damit z. B. die Anzahl der Elemente in B mit der Anzahl der Elemente in A übereinstimmt. Wenn beispielsweise A eine 10x10-Matrix ist, dann formt reshape(A,2,2,[]) die 100 Elemente von A in ein 2x2x25-Array um.

Beispiele

alle reduzieren

Umformen eines 1x10-Vektors in eine 5x2-Matrix.

A = 1:10;
B = reshape(A,[5,2])
B = 5×2

     1     6
     2     7
     3     8
     4     9
     5    10

Umformen einer quadratischen 4x4-Matrix in eine Matrix mit 2 Spalten. Geben Sie [] für die erste Dimension an, um die entsprechende Anzahl von Zeilen automatisch von reshape berechnen zu lassen.

A = magic(4)
A = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

B = reshape(A,[],2)
B = 8×2

    16     3
     5    10
     9     6
     4    15
     2    13
    11     8
     7    12
    14     1

Das Ergebnis ist eine 8x2-Matrix, die dieselbe Anzahl von Elementen beibehält wie die ursprüngliche Matrix. Auch die Elemente in B behalten ihre spaltenweise Reihenfolge von A bei.

Umformen eines 2x2x3-Arrays von Zufallswerten in eine 6x2-Matrix.

rng default
A = rand(2,2,3)
A = 
A(:,:,1) =

    0.8147    0.1270
    0.9058    0.9134


A(:,:,2) =

    0.6324    0.2785
    0.0975    0.5469


A(:,:,3) =

    0.9575    0.1576
    0.9649    0.9706

B = reshape(A,6,2)
B = 6×2

    0.8147    0.2785
    0.9058    0.5469
    0.1270    0.9575
    0.9134    0.9649
    0.6324    0.1576
    0.0975    0.9706

Eingabeargumente

alle reduzieren

Eingabearray, angegeben als Vektor, Matrix oder mehrdimensionales Array.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | struct | datetime | duration | calendarDuration
Unterstützung komplexer Zahlen: Ja

Ausgabegröße, angegeben als Zeilenvektor aus Ganzzahlen. Jedes Element von sz gibt die Größe der entsprechenden Dimension in B an. Sie müssen sz so angeben, dass die Anzahl der Elemente in A und B identisch ist. Das heißt, prod(sz) muss mit numel(A) identisch sein.

Jenseits der zweiten Dimension spiegelt die Ausgabe, B, keine nachgeordneten Dimensionen mit einer Größe von 1 wider. Beispielsweise generiert reshape(A,[3,2,1,1]) eine 3x2-Matrix.

Beispiel: reshape(A,[3,2])

Beispiel: reshape(A,[6,4,10])

Beispiel: reshape(A,[5,5,5,5])

Größe der jeweiligen Dimension, angegeben als zwei oder mehr Ganzzahlen mit höchstens einer [] (optional). Sie müssen mindestens 2 Dimensionsgrößen angeben, wobei höchstens eine Dimensionsgröße als [] angegeben werden kann, wodurch automatisch die Größe dieser Dimension berechnet wird, um sicherzustellen, dass numel(B) mit numel(A) übereinstimmt. Wenn Sie mithilfe von [] eine Dimensionsgröße automatisch berechnen, müssen die Dimensionen, die Sie tatsächlich explizit angeben, gleichmäßig durch die Anzahl der Elemente in der Eingabematrix dividiert werden, numel(A).

Jenseits der zweiten Dimension spiegelt die Ausgabe, B, keine nachgeordneten Dimensionen mit einer Größe von 1 wider. Beispielsweise generiert reshape(A,3,2,1,1) eine 3x2-Matrix.

Beispiel: reshape(A,3,2)

Beispiel: reshape(A,6,[],10)

Beispiel: reshape(A,2,5,3,[])

Beispiel: reshape(A,5,5,5,5)

Ausgabeargumente

alle reduzieren

Umgeformtes Array, zurückgegeben als Vektor, Matrix, mehrdimensionales Array oder Zellenarray. Datentyp und Anzahl der Elemente in B sind mit dem Datentyp und der Anzahl der Elemente in A identisch. Die Elemente in B behalten ihre spaltenweise Anordnung von A bei.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration

Tipps

  • Die Funktion reshape ordnet die vorhandenen Elemente in den Eingabedaten neu an. Verwenden Sie zum Hinzufügen oder Entfernen von Elementen die Funktion resize.

Erweiterte Fähigkeiten

HDL-Codegenerierung
Generieren von Verilog und VHDL Code für FPGA- und ASIC-Designs mit HDL Coder™.

Versionsverlauf

Eingeführt vor R2006a