web-dev-qa-db-fra.com

Comment concaténez-vous les lignes d'une matrice dans un vecteur?

Pour un tableau m-by-m (carré), comment concaténer toutes les lignes dans un vecteur de colonne de taille m ^ 2?

34
jimbo

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
64
gnovice

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.  Direction of changing

0
PyMatFlow