2010-04-27 12 views
33

Para una matriz m-por-m (cuadrada), ¿cómo se concatenan todas las filas en un vector de columna con tamaño m^2?¿Cómo concatenas las filas de una matriz en un vector?

+0

¿No concatenación matriz generalmente significa multiplicación? –

+5

Creo que solo quiere "aplanar" la matriz cuadrada en un vector de columna, ¿no? –

Respuesta

63

Hay un par de formas diferentes en que puede colapsar su matriz en un vector, dependiendo de cómo desee que el contenido de su matriz llene ese vector. He aquí dos ejemplos, uno que utiliza la función reshape (después de la primera transposing la matriz) y una utilizando el 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 para '[]' como argumento para 'reshape', no lo sabía. – Mikhail

Cuestiones relacionadas