Matlab中的矩阵向​​量转换

时间:2011-04-28 11:27:20

标签: matlab octave

我有一个MxN矩阵,想转换成一个向量MNx1,矩阵中行的所有元素都作为向量的元素。

我尝试使用reshape,但我没有成功。

以下是小代码段和预期结果。

  S=[0     1
     1     0
     1     1
     1     1 ]

预期结果:

S_prime= [ 0 1 1 0 1 1 1 1]

P.S:使用循环和连接不是一种选择,我确信有一种简单的直接技术,我不知道。

由于

4 个答案:

答案 0 :(得分:8)

您可以尝试转置S并使用(:)

S = S'
S_prime = S(:)

或行向量:

S_prime = S(:)'

答案 1 :(得分:4)

重塑以列方式获取元素,因此在重新整形之前转置S.

>> reshape(S',1,[])

ans =

     0     1     1     0     1     1     1     1

答案 2 :(得分:1)

reshape(S',1,prod(size(S)))

或快捷方式

reshape(S',1,[])

但这个问题让我想知道你的原始问题是什么,如果这种方式确实是正确解决原始问题的一部分。

答案 3 :(得分:0)

八度有一个很好的功能:vec()。

http://www.mathcs.emory.edu/~nagy/courses/fall10/515/KroneckerIntro.pdf上的文档说明如下。

vector x = vec(X) 
can be obtained with the MATLAB statement: x = reshape(X, q*n, 1)