Pour un tableau m par m (carré), comment concaténer toutes les lignes dans un vecteur colonne de taille m^2 ?
Réponses
Trop de publicités?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
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.
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 ?