Modification du nombre de lignes et de colonnes dans une matrice sous Matlab
Dans ce tutoriel, je vais vous expliquer comment ajuster le nombre de lignes et de colonnes d'une matrice dans Matlab, tout en préservant le nombre total d'éléments de cette dernière.
Examinons un exemple concret.
Commencez par créer une matrice rectangulaire de dimensions 3x2, soit trois lignes et deux colonnes.
>> M = [ 1 2 ; 3 4 ; 5 6 ]
M =
1 2
3 4
5 6
Utilisez ensuite la fonction reshape(M,2,3) pour transformer cette matrice en une autre, de dimensions 2x3, soit deux lignes et trois colonnes.
>> reshape(M,2,3)
ans =
1 5 4
3 2 6
Il est essentiel que la matrice cible conserve le même nombre d'éléments.
De même, vous pouvez transformer la matrice initiale en un vecteur ligne en tapant reshape(M,1,6).
>> reshape(M,1,6)
ans =
1 3 5 2 4 6
Ou encore, en un vecteur colonne en utilisant reshape(M,6,1).
>> reshape(M,6,1)
ans =
1
3
5
2
4
6
Dans chacune de ces transformations, le nombre total d'éléments demeure inchangé.
Remarque : Un vecteur est en fait une forme particulière de matrice, ne comportant qu'une seule ligne (1x6) ou une seule colonne (6x1).
Il est également possible de convertir un vecteur en matrice.
Prenons l'exemple d'un vecteur constitué de huit éléments.
>> v = [ 1 2 3 4 5 6 7 8 ]
v =
1 2 3 4 5 6 7 8
Transformez ensuite ce vecteur en une matrice 2x4, avec deux lignes et quatre colonnes, en saisissant reshape(v,2,4).
>> reshape(v, 2, 4)
ans =
1 3 5 7
2 4 6 8
Cette matrice contient exactement le même nombre d'éléments que le vecteur initial.
En alternative, vous pouvez transformer le vecteur en une matrice 4x2 en entrant reshape(v,4,2).
>> reshape(v, 4, 2)
ans =
1 5
2 6
3 7
4 8
Cela vous permet de convertir aisément n'importe quel vecteur en matrice, et inversement, à condition que le nombre total d'éléments reste identique.
Attention, la commande reshape génère une erreur si le nombre d'éléments diffère.
Il n'est par exemple pas possible de transformer une matrice 4x2 en une matrice 3x3, car la première contient 8 éléments tandis que la seconde en compte 9.
Dans ce cas, la commande reshape() renverra un message d'erreur.
>> reshape(M,3,3)
Erreur lors de l'utilisation de reshape
Le nombre d'éléments ne doit pas changer. Utilisez [ ] comme l'une des entrées de dimension pour calculer automatiquement la taille appropriée pour cette dimension.