2010-04-28 19 views
19

Possible Duplicate:
How do you concatenate the rows of a matrix into a vector in MATLAB?la forma más fácil de convertir la matriz de un vector fila

Hola,

¿Alguien sabe cuál es la mejor manera de crear una matriz fila (vector) de la matriz x N M poniendo todas las filas, de 1 a M, de la matriz original en primera fila de nueva matriz de la siguiente manera:

A = [row1; row2; ...; rowM] 
B = [row1, row2, ..., rowM] 

Ejemplo:

A = [1 1 0 0; 0 1 0 1] 
B = [1 1 0 0 0 1 0 1] 

¿Existe un método simple o quizás una función incorporada que podría generar la matriz B desde A?

+1

duplicado exacto de http://stackoverflow.com/questions/2724020/matlab-matrix-concatenating –

Respuesta

28

Pruebe esto: B = A (:), o pruebe la función reshape.

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/reshape.html

+2

'B = A (:) ; 'no funcionará en este caso, ya que pondrá todas las columnas en un vector de columna. – gnovice

+0

Simplemente puede transponer la matriz a un vector (con 'si mal no recuerdo') –

+2

no use ''' si tiene números complejos ya que voltea los signos del componente complejo; use 'B = permute ([2 1], A (:))' – KitsuneYMG

23

Puede utilizar la función RESHAPE:

B = reshape(A.',1,[]); 
+5

Tenga cuidado con el operador 'aquí, como si sus datos fueran complejos, esto le daría una transposición conjugada. Mejor es usar '. en esta operación –

+0

@woodchips: Buen punto. Actualizado. – gnovice

+2

¡Creo que ** esta ** es la respuesta exacta a la pregunta! –

Cuestiones relacionadas