开发者

Matrix to Vector Conversion in Matlab

I have a MxN Matrix and would like to convert into a vector MNx1 with all the elements of the row from the Matrix as the elements of the Vector.

I tried using re开发者_开发问答shape but I was not successful.

Here is the small code snippet and the expected result.

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

Expected Result:

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

P.S: Using a loop and concatenation is not an option, I am sure there is a easy straight forward technique, which I am not aware.

Thanks


You could try transposing S and using (:)

S = S'
S_prime = S(:)

or for a row vector:

S_prime = S(:)'


Reshape takes the elements column wise so transpose S before reshaping.

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

ans =

     0     1     1     0     1     1     1     1


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

or shortcut

reshape(S',1,[])

But the question makes me wonder what your original problem is, and if this way really is part of the correct solution to the original problem.


Octave has a very nice function: vec().

The document at http://www.mathcs.emory.edu/~nagy/courses/fall10/515/KroneckerIntro.pdf states the following.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜