Pour un tableau m-by-m (carré), comment concaténer toutes les lignes dans un vecteur de colonne de taille m ^ 2?
Il existe différentes manières de réduire votre matrice en un vecteur, en fonction de la manière dont vous souhaitez que le contenu de votre matrice remplisse ce vecteur. Voici deux exemples, l'un utilisant la fonction reshape
(après le premier transposant la matrice) et l'autre utilisant la syntaxe deux-points(:)
:
>> M = [1 2 3; 4 5 6; 7 8 9]; % Sample matrix
>> vector = reshape(M.', [], 1) % Collect the row contents into a column vector
vector =
1
2
3
4
5
6
7
8
9
>> vector = M(:) % Collect the column contents into a column vector
vector =
1
4
7
2
5
8
3
6
9
Une note très importante lors de la modification d’une matrice en un vecteur est que MATLAB génère le vecteur de sortie à partir des colonnes de la matrice, si vous utilisez A(:)
par exemple :
A = [1 2 3 ; 4 5 6]
B = A (:)
B = [1 4 2 5 3 6]
Vous pouvez voir la direction du changement dans l'image suivante.