34 votes

Comment concaténer les lignes d'une matrice en un vecteur ?

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

0 votes

La concaténation de matrices ne signifie-t-elle pas généralement une multiplication ?

5 votes

Je pense qu'il veut juste "aplatir" la matrice carrée en un vecteur colonne, non ?

64voto

gnovice Points 70970

Il existe plusieurs façons de réduire votre matrice en un vecteur, selon la façon 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 transposition la matrice) et une autre utilisant la syntaxe des 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

0voto

PyMatFlow Points 255

Une remarque très importante lors de la transformation d'une matrice en vecteur est que, MATLAB produit le vecteur de sortie à partir des colonnes de la matrice, si vous utilisez la commande 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X