reshape
Rimodellare l'array riorganizzando gli elementi esistenti
Descrizione
rimodella B
= reshape(A
,sz1,...,szN
)A
in array sz1
x ...
x szN
dove sz1,...,szN
indica la grandezza di ciascuna dimensione. È possibile specificare una singola grandezza della dimensione di []
per far calcolare automaticamente la grandezza della dimensione, in modo che il numero di elementi in B
corrisponda al numero di elementi in A
. Ad esempio, se A
è una matrice 10x10, reshape(A,2,2,[])
rimodella i 100 elementi di A
in un array 2x2x25.
Esempi
Rimodellamento di un vettore in una matrice
Rimodellare un vettore 1x10 in una matrice 5x2.
A = 1:10; B = reshape(A,[5,2])
B = 5×2
1 6
2 7
3 8
4 9
5 10
Rimodellamento della matrice in modo da ottenere un numero specifico di colonne
Rimodellare una matrice quadrata 4x4 in una matrice con 2 colonne. Specificare []
per la prima dimensione per consentire a reshape
di calcolare automaticamente il numero appropriato di righe.
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
Il risultato è una matrice 8x2, che mantiene lo stesso numero di elementi della matrice originale. Gli elementi in B
mantengono inoltre l’ordinamento colonna per colonna da A
.
Rimodellamento di un array multidimensionale in una matrice
Rimodellare un array 2x2x3 di valori casuali in una matrice 6x2.
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
Argomenti di input
A
— Array di input
vettore | matrice | array multidimensionale
Array di input, specificato come vettore, matrice o array multidimensionale.
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| struct
| datetime
| duration
| calendarDuration
Supporto numeri complessi: Sì
sz
— Grandezza dell'output
vettore riga di numeri interi
Grandezza dell’output, specificata come vettore riga di numeri interi. Ciascun elemento di sz
indica la grandezza della dimensione corrispondente in B
. È necessario specificare sz
in modo che il numero di elementi in A
e in B
sia uguale. Ossia, prod(sz)
deve essere uguale a numel(A)
.
Oltre la seconda dimensione, l'output B
non riflette le dimensioni finali con grandezza pari a 1
. Ad esempio, reshape(A,[3,2,1,1])
produce una matrice 3x2.
Esempio reshape(A,[3,2])
Esempio reshape(A,[6,4,10])
Esempio reshape(A,[5,5,5,5])
sz1,...,szN
— Grandezza di ciascuna dimensione
due o più numeri interi | []
(opzionale)
Grandezza di ciascuna dimensione, specificata da due o più numeri interi con al massimo un []
(opzionale). È necessario specificare almeno 2 grandezze della dimensione e al massimo una grandezza può essere specificata come []
, che calcola automatica la grandezza di tale dimensione per garantire che numel(B)
corrisponda a numel(A)
. Quando si utilizza []
per calcolare automaticamente una grandezza della dimensione, le dimensioni che si specificano esplicitamente devono dividersi in parti uguali nel numero di elementi della matrice di input numel(A)
.
Oltre la seconda dimensione, l'output B
non riflette le dimensioni finali con grandezza pari a 1
. Ad esempio, reshape(A,3,2,1,1)
produce una matrice 3x2.
Esempio reshape(A,3,2)
Esempio reshape(A,6,[],10)
Esempio reshape(A,2,5,3,[])
Esempio reshape(A,5,5,5,5)
Argomenti di output
B
— Array rimodellato
vettore | matrice | array multidimensionale | array di celle
Array rimodellato, restituito come vettore, matrice, array multidimensionale o array di celle. Il tipo di dati e il numero di elementi in B
sono uguali al tipo di dati e al numero di elementi in A
. Gli elementi in B
preservano l’ordinamento colonna per colonna da A
.
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
Suggerimenti
La
funzione
di rimodellamento riorganizza gli elementi esistenti nei dati di input. Per aggiungere o rimuovere elementi, utilizzare la funzioneresize
.
Funzionalità estese
Tall array
Esegui calcoli con array che hanno più righe di quelle allocabili in memoria.
Questa funzione supporta i tall array con le seguenti limitazioni:
Il rimodellamento della dimensione tall (dimensione uno) non è supportato. Il primo input della dimensione deve essere sempre vuoto, come
reshape(X,[],M,N,...)
.
Per maggiori informazioni, vedere Tall Arrays for Out-of-Memory Data.
Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.
Note su utilizzo e limitazioni:
Se l'input è un array di celle vuote in tempo di compilazione, gli argomenti di grandezza devono essere costanti.
Gli argomenti di grandezza devono avere una grandezza fissa.
Vedere Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Per le matrici sparse, la funzione
reshape
non supporta uno finali come input dopo le prime due dimensioni.
Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.
Note su utilizzo e limitazioni:
Se l'input è un array di celle vuote in tempo di compilazione, gli argomenti di grandezza devono essere costanti.
Gli argomenti di grandezza devono avere una grandezza fissa.
Per le matrici sparse, la funzione
reshape
non supporta uno finali come input dopo le prime due dimensioni.
Generazione di codice HDL
Genera codice VHDL, Verilog e SystemVerilog per progetti FPGA e ASIC utilizzando HDL Coder™.
Ambiente basato su thread
Esegui il codice in background usando MATLAB® backgroundPool
oppure accelera il codice con Parallel Computing Toolbox™ ThreadPool
.
Questa funzione supporta completamente gli ambienti basati su thread. Per maggiori informazioni, vedere Run MATLAB Functions in Thread-Based Environment.
Array GPU
Accelera il codice mediante esecuzione su un’unità di elaborazione grafica (GPU) con Parallel Computing Toolbox™.
Questa funzione supporta completamente gli array di GPU. Per maggiori informazioni, vedere Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Array distribuiti
Partiziona array di grandi dimensioni nella memoria combinata del cluster con Parallel Computing Toolbox™.
Questa funzione supporta completamente gli array distribuiti. Per maggiori informazioni, vedere Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Cronologia versioni
Introduzione prima di R2006a
Apri esempio
Si dispone di una versione modificata di questo esempio. Desideri aprire questo esempio con le tue modifiche?
Comando MATLAB
Hai fatto clic su un collegamento che corrisponde a questo comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB. I browser web non supportano i comandi MATLAB.
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)