我有一个MxN矩阵,想转换成一个向量MNx1,矩阵中行的所有元素都作为向量的元素。
我尝试使用reshape
,但我没有成功。
以下是小代码段和预期结果。
S=[0 1
1 0
1 1
1 1 ]
预期结果:
S_prime= [ 0 1 1 0 1 1 1 1]
P.S:使用循环和连接不是一种选择,我确信有一种简单的直接技术,我不知道。
由于
答案 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)