2010-04-28 81 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