Modifier le nombre de lignes et de colonnes d'une matrice dans Octave
Dans le cadre de cette leçon, nous allons aborder la modification du nombre de lignes et de colonnes d'une matrice sous Octave, tout en conservant le nombre total d'éléments inchangé.
Prenons un exemple concret.
Constituez une matrice rectangulaire 3x2, composée de trois lignes et deux colonnes.
>> M = [ 1 2 ; 3 4 ; 5 6 ]
M =
1 2
3 4
5 6
Il est maintenant possible de transformer cette matrice 3x2 en une matrice 2x3, qui comprend deux lignes et trois colonnes.
Pour ce faire, saisissez reshape(M,2,3)
>> reshape(M,2,3)
ans =
1 5 4
3 2 6
Il est également envisageable de convertir la matrice initiale en un vecteur ligne, en saisissant reshape(M,1,6)
>> reshape(M,1,6)
ans =
1 3 5 2 4 6
ou en un vecteur colonne, en saisissant reshape(M,6,1)
>> reshape(M,6,1)
ans =
1
3
5
2
4
6
Dans tous les cas, le nombre d'éléments demeure constant.
Notez qu'un vecteur est une matrice spécifique avec une seule ligne 1x6 ou une seule colonne 6x1.
De la même manière, un vecteur peut être transformé en une matrice.
Par exemple, créez un vecteur de huit éléments
>> v = [ 1 2 3 4 5 6 7 8 ]
v =
1 2 3 4 5 6 7 8
Il est possible de convertir ce vecteur en une matrice 2x4, qui comprend deux lignes et quatre colonnes, en saisissant reshape(v,2,4)
>> reshape(v, 2, 4)
ans =
1 3 5 7
2 4 6 8
En alternative, le vecteur peut être transformé en une matrice 4x2 en saisissant reshape(v, 4, 2)
>> reshape(v, 4, 2)
ans =
1 5
2 6
3 7
4 8
Ainsi, un vecteur peut être converti en une matrice et vice versa, à condition que le nombre d'éléments reste identique.
Si le nombre d'éléments diffère, la commande reshape() ne fonctionnera pas.
Par exemple, il est impossible de transformer une matrice 4x2 en une matrice 3x3, car la première matrice contient huit éléments, tandis que la seconde en contient neuf.
Dans ce cas, la commande reshape() ne fonctionnera pas.
>> reshape(M,3,3)
error: reshape: can't reshape 3x2 array to 3x3 array