Convert matrix in single column/row vector

Hi, I have to convert a matrix in one column/row vector composed of all the rows of the original matrix. How can I do this? Thanks. For example, to convert [1 2; 3 4] in to [1 2 3 4].

 Accepted Answer

Take a look at reshape and transpose
A = [1 2 ; 3 4]
reshape(A,1,[])
transpose(A)
A.'
A(:)
reshape(A.',1,[])

More Answers (4)

%%%% Converting Matix to vector
A = [1 2 3; 4 5 6; 7 8 9] % Example matrix
reshape(A,[],1) % convert matrix to column vector
reshape(A,1,[]) % convert matrix to row vector

2 Comments

@M Shujah Islam Sameem excuse me ,, i want to convert image matrix size 256x256 to row vector with length same size can you please help me ?
'the same size', do you mean a vector length 256 or 65536? In the latter case, read the answer.

Sign in to comment.

A = [1 2; 3 4];
B = A(:) % convert the matrix into a column vector
C = A(:)' % convert the matrix into a row matrix

2 Comments

not work: instead of 1 2 3 4 the result is 1 3 2 4
A=[1 2; 3 4];
A=A';
A(:)

Sign in to comment.

A = [1 2; 3 4];
B = A';
C = reshape(B,1,[])
ans of C will be [1 2 3 4]

2 Comments

Exactly what I wanted!.
A million Thanks!

Sign in to comment.

You can convert the following matrix to a vector using the following code.
input matrix:
0 1 0 2 3
4 5 6 7 8
9 10 11 12 13
output vector:
0 1 0 2 3 4 5 6 7 8 9 10 11 12 13
code:
vector=[];
for i=1:size(matrix,1)
vector=[vector matrix(i,:)];
end

2 Comments

Dynamically growing an array is very inefficient. You should consider transposing the array and using reshape.
Technically possible, but generally the least effective solution in Matlab. I would consider this bad practice.

Sign in to comment.

Categories

Find more on Mathematics in Help Center and File Exchange

Products

Asked:

on 5 Nov 2017

Commented:

on 6 Sep 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!