reshape
Redimensionner le tableau en réorganisant les éléments existants
Description
redimensionne B
= reshape(A
,sz1,...,szN
)A
en tableau de sz1
x ...
x szN
où sz1,...,szN
indique la taille de chaque dimension. Vous pouvez spécifier une taille de dimension unique []
pour calculer automatiquement la taille de la dimension, de sorte que le nombre d’éléments dans B
corresponde au nombre d’éléments dans A
. Par exemple, si A
est une matrice 10 x 10, reshape(A,2,2,[])
redimensionne les 100 éléments de A
en tableau de dimension 2 x 2 x 25.
Exemples
Redimensionner un vecteur en matrice
Redimensionnez un vecteur de 1 x 10 en matrice de 5 x 2.
A = 1:10; B = reshape(A,[5,2])
B = 5×2
1 6
2 7
3 8
4 9
5 10
Redimensionner une matrice pour qu’elle ait un nombre de colonnes spécifié
Redimensionnez une matrice carrée de 4 x 4 en matrice à 2 colonnes. Spécifiez []
pour la première dimension afin de permettre à reshape
de calculer automatiquement le nombre approprié de lignes.
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 en résulte une matrice de 8 x 2 qui conserve le même nombre d’éléments que la matrice d’origine. Les éléments de B
conservent également l’ordre des colonnes de A
.
Redimensionner un tableau multidimensionnel en matrice
Redimensionnez un tableau de valeurs aléatoires de dimension 2 x 2 x 3 en matrice 6 x 2.
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
Arguments d'entrée
A
— Tableau en entrée
vecteur | matrice | tableau multidimensionnel
Tableau en entrée, spécifié sous forme de vecteur, de matrice ou de tableau multidimensionnel.
Types de données : single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| struct
| datetime
| duration
| calendarDuration
Support des nombres complexes : Oui
sz
— Taille de la sortie
vecteur ligne de nombres entiers
Taille de la sortie, spécifiée sous forme d’un vecteur ligne de nombres entiers. Chaque élément de sz
indique la taille de la dimension correspondante dans B
. Vous devez spécifier sz
pour que le nombre d’éléments de A
et de B
soient identiques. Autrement dit, prod(sz)
doit être identique à numel(A)
.
Au-delà de la deuxième dimension, la sortie B
ne reflète pas les dimensions suivantes de taille 1
. Par exemple, reshape(A,[3,2,1,1])
produit une matrice de 3 x 2.
Exemple : reshape(A,[3,2])
Exemple : reshape(A,[6,4,10])
Exemple : reshape(A,[5,5,5,5])
sz1,...,szN
— Taille de chaque dimension
deux nombres entiers ou plus | []
(facultatif)
Taille de chaque dimension, spécifiée sous forme de deux nombres entiers ou plus, avec au plus un []
(facultatif). Vous devez spécifier au moins deux tailles de dimension et une taille de dimension peut être spécifiée au maximum en tant que []
, qui calcule automatiquement la taille de cette dimension pour s’assurer que numel(B)
correspond à numel(A)
. Lorsque vous utilisez []
pour calculer automatiquement la taille d’une dimension, les dimensions que vous spécifiez explicitement doivent être divisées également par le nombre d’éléments de la matrice d’entrée numel(A)
.
Au-delà de la deuxième dimension, la sortie B
ne reflète pas les dimensions suivantes de taille 1
. Par exemple, reshape(A,3,2,1,1)
produit une matrice de 3 x 2.
Exemple : reshape(A,3,2)
Exemple : reshape(A,6,[],10)
Exemple : reshape(A,2,5,3,[])
Exemple : reshape(A,5,5,5,5)
Arguments de sortie
B
— Tableau redimensionné
vecteur | matrice | tableau multidimensionnel | cell array
Tableau redimensionné, renvoyé sous forme de vecteur, de matrice, de tableau multidimensionnel ou de cell array. Le type de données et le nombre d’éléments de B
sont les mêmes que dans A
. Les éléments de B
conservent l’ordre de leurs colonnes par rapport à A
.
Types de données : single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
Conseils
La
fonction
reshape réorganise les éléments existants selon les données en entrée. Pour ajouter ou supprimer des éléments, utilisez plutôt la fonctionresize
.
Capacités étendues
Tall arrays
Calculer avec des arrays possédant plus de rangées que la mémoire ne peut en contenir.
Cette fonction supporte les tall arrays avec les limitations suivantes :
Le redimensionnement de la dimension tall (dimension 1) n’est pas supporté. La première dimension doit toujours être vide, à l’image de
reshape(X,[],M,N,...)
.
Pour plus d’informations, consultez Tall Arrays for Out-of-Memory Data.
Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.
Notes d’usage et limitations :
Si l’entrée est un cell array vide au compile-time, les arguments spécifiant les tailles doivent être des constantes.
Les arguments spécifiant les tailles doivent être de taille fixe.
Consultez Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Pour les matrices creuses, la fonction
reshape
ne supporte pas les dimensions suivantes contenant des « uns » en entrée après les deux premières dimensions.
Génération de code GPU
Générez du code CUDA® pour les GPU NVIDIA® avec GPU Coder™.
Notes d’usage et limitations :
Si l’entrée est un cell array vide au compile-time, les arguments spécifiant les tailles doivent être des constantes.
Les arguments spécifiant les tailles doivent être de taille fixe.
Pour les matrices creuses, la fonction
reshape
ne supporte pas les dimensions suivantes contenant des « uns » en entrée après les deux premières dimensions.
Génération de code HDL
Générez du code Verilog et VHDL pour les designs FPGA et ASIC avec HLD Coder™.
Environnement basé sur les threads
Exécutez du code en arrière-plan avec MATLAB® backgroundPool
ou accélérez le code avec Parallel Computing Toolbox™ ThreadPool
.
Cette fonction supporte entièrement les environnements basés sur des threads. Pour plus d’informations, consultez Run MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accélérez le code en exécutant les calculs sur une unité de traitement graphique (GPU) avec Parallel Computing Toolbox™.
Cette fonction supporte entièrement les GPU arrays. Pour plus d’informations, consultez Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed arrays
Divisez les tableaux volumineux dans la mémoire combinée de votre cluster avec Parallel Computing Toolbox™.
Cette fonction supporte entièrement les distributed arrays. Pour plus d’informations, consultez Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historique des versions
Introduit avant R2006a
Ouvrir l'exemple
Vous possédez une version modifiée de cet exemple. Souhaitez-vous ouvrir cet exemple avec vos modifications ?
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes 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)