2010-04-27 4 views
33

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

+0

ne signifie pas concaténation de matrice habituellement multiplication? –

+5

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

Répondre

63

Il existe plusieurs façons de réduire votre matrice en vecteur, en fonction de la manière dont vous souhaitez que le contenu de votre matrice remplisse ce vecteur. Voici deux exemples, on utilise la fonction reshape (après la première transposing la matrice) et une aide de la colon syntax(:):

>> 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 
+6

+1 pour '[]' en tant qu'argument pour 'reshape', ne le savait pas. – Mikhail

Questions connexes