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].

 Risposta accettata

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

Più risposte (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 Commenti

@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.

Accedi per commentare.

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

2 Commenti

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

Accedi per commentare.

Fariha Tabassum
Fariha Tabassum il 6 Apr 2020
A = [1 2; 3 4];
B = A';
C = reshape(B,1,[])
ans of C will be [1 2 3 4]

2 Commenti

Exactly what I wanted!.
A million Thanks!
thanks a lot

Accedi per commentare.

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 Commenti

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.

Accedi per commentare.

Categorie

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by