reshape
Umformen eines Arrays durch Neuanordnung vorhandener Elemente
Beschreibung
dient zum Umformen von B
= reshape(A
,sz1,...,szN
)A
in ein sz1
x...
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
Umformen eines Vektors in eine Matrix
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 Matrix, sodass sie die angegebene Anzahl von Spalten aufweist
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 mehrdimensionalen Arrays in eine Matrix
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
A
— Eingabearray
Vektor | Matrix | mehrdimensionales Array
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
sz
— Ausgabegröße
Zeilenvektor aus Ganzzahlen
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])
sz1,...,szN
— Größe der jeweiligen Dimension
zwei oder mehr Ganzzahlen | []
(optional)
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
B
— Umgeformtes Array
Vektor | Matrix | mehrdimensionales Array | Zellenarray
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 Funktionresize
.
Erweiterte Fähigkeiten
Tall Arrays
Rechnen mit Arrays, die mehr Zeilen haben, als in den Speicher passen.
Diese Funktion unterstützt Tall-Arrays mit folgenden Einschränkungen:
Das Umformen der Tall-Dimension (Dimension eins) wird nicht unterstützt. Die erste Dimensionseingabe sollte stets leer sein, z. B.
reshape(X,[],M,N,...)
.
Weitere Informationen finden Sie unter Tall Arrays for Out-of-Memory Data.
C/C++ Codegenerierung
Generieren Sie C und C++ Code mit MATLAB® Coder™.
Hinweise zur Verwendung und Einschränkungen:
Wenn die Eingabe ein leeres Zellenarray zur Kompilierungszeit ist, müssen die Größenargumente Konstanten sein.
Größenargumente müssen eine feste Größe haben.
Siehe Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Bei dünn besetzten Matrizen unterstützt die Funktion
reshape
keine nachgeordneten Einsen als Eingaben nach den ersten beiden Dimensionen.
GPU-Codegenerierung
Generieren von CUDA® Code für NVIDIA® Grafikprozessoren mit dem GPU Coder™.
Hinweise zur Verwendung und Einschränkungen:
Wenn die Eingabe ein leeres Zellenarray zur Kompilierungszeit ist, müssen die Größenargumente Konstanten sein.
Größenargumente müssen eine feste Größe haben.
Bei dünn besetzten Matrizen unterstützt die Funktion
reshape
keine nachgeordneten Einsen als Eingaben nach den ersten beiden Dimensionen.
HDL-Codegenerierung
Generieren von Verilog und VHDL Code für FPGA- und ASIC-Designs mit HDL Coder™.
Thread-Based Environment
Führen Sie mithilfe von MATLAB® backgroundPool
den Code im Hintergrund aus oder machen Sie den Code mit der Parallel Computing Toolbox™ ThreadPool
schneller.
Diese Funktion bietet vollständige Unterstützung für thread-basierte Umgebungen. Weitere Informationen finden Sie unter Run MATLAB Functions in Thread-Based Environment.
GPU-Arrays
Schnellere Codeausführung durch Ausführen auf einer Grafikkarte (GPU) mit der Parallel Computing Toolbox™.
Diese Funktion bietet vollständige Unterstützung für Grafikkarten-Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Verteilte Arrays
Partitionieren von großen Arrays über den kombinierten Speicher Ihres Clusters mit Parallel Computing Toolbox™.
Diese Funktion bietet vollständige Unterstützung für verteilte Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Versionsverlauf
Eingeführt vor R2006a
Beispiel öffnen
Sie haben eine geänderte Version dieses Beispiels. Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)