2010-04-28 77 views
19

Possible Duplicate:
How do you concatenate the rows of a matrix into a vector in MATLAB?到矩陣轉換成一個行向量

嗨最簡單的方法,

有誰知道什麼是把所有行創建M×N的矩陣一行矩陣(矢量)的最佳方式,從1到M,原始矩陣到新的矩陣的第一行的方式如下:

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

實施例:

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

是否有一個簡單的方法或可能是一個內置函數,可以從A生成矩陣B?

+1

http://stackoverflow.com/questions/2724020/matlab-matrix-concatenating – 2010-04-28 15:46:44

回答

28

試試這個:B = A (:),或嘗試reshape函數。

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

+2

'B = A的精確副本(:) ;'在這種情況下不起作用,因爲它會將所有列放入一個列向量中。 – gnovice 2010-04-28 16:13:33

+0

你可以簡單地將矩陣轉置爲一個向量('如果我沒有記錯的話) – 2010-04-28 18:52:20

+2

如果你有複雜的數字,因爲它翻轉複雜的組件符號;使用'B = permute([2 1],A(:))' – KitsuneYMG 2010-04-29 14:07:40

23

可以使用功能RESHAPE

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

在這裏要小心'操作員,好像你的數據很複雜,這會給你一個共軛轉置。更好的是使用。「在這個操作中。 – 2010-04-28 18:21:05

+0

@woodchips:好點。更新。 – gnovice 2010-04-28 18:27:15

+2

我認爲**這個**是問題的確切答案! – 2014-02-04 14:31:14