2010-04-28 12 views
19

Possible Duplicate:
How do you concatenate the rows of a matrix into a vector in MATLAB?il modo più semplice per convertire matrice per un vettore riga

Ciao,

Qualcuno sa qual è il modo migliore per creare una matrice di riga (vettore) dalla matrice M x N mettendo tutte le righe, da 1 a M, della matrice originale in prima fila della nuova matrice seguente modo:

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

Esempio:

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

Esiste un metodo semplice o forse una funzione incorporata che possa generare la matrice B da A?

+1

duplicato esatto del http://stackoverflow.com/questions/2724020/matlab-matrix-concatenating –

risposta

28

Prova questo: B = A (:) oppure prova la funzione reshape.

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

+2

'B = A (:) ; 'non funzionerà in questo caso, dal momento che metterà tutte le colonne in un vettore colonna. – gnovice

+0

Puoi semplicemente trasporre la matrice di un vettore (con 'se ricordo male) –

+2

non usare ''' se hai numeri complessi mentre capovolge i segni del componente complesso; usa 'B = permute ([2 1], A (:))' – KitsuneYMG

23

È possibile utilizzare la funzione RESHAPE:

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

Fai attenzione con l'operatore qui, come se i tuoi dati fossero complessi, questo ti darà una trasposizione coniugata. Meglio usare. ' in questa operazione. –

+0

@woodchips: buon punto. Aggiornato. – gnovice

+2

Penso che ** questa ** sia la risposta esatta alla domanda! –

Problemi correlati