# Convert a vector into a matrix (row wise)

76 visualizzazioni (ultimi 30 giorni)
Amirhossein Moosavi il 2 Lug 2020
Modificato: Tommy il 2 Lug 2020
Let us assume vector A as follows:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
I create two vectors (row wise) from this matrix as follows:
CP = randi([1 numel(A)]-1);
B = transpose(A);
C = B(1:CP);
D = B(CP+1:end);
Now, when I use reshpe function to construct a matrix as the same as A, the result is something else.
reshape([C D], 3, 4)
It seems that I need to make reshape to construct the matrix in row wise. Could you please help me?
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
James Tursa il 2 Lug 2020
Can you explain what you want to get as output? I.e., show us the actual numeric output you want.

Accedi per commentare.

### Risposta accettata

Tommy il 2 Lug 2020
Modificato: Tommy il 2 Lug 2020
From the reshape() docs, for the syntax
B = reshape(A,sz)
"The elements in B preserve their columnwise ordering from A."
If you want to "reshape" a vector so that the output matrix is filled along the rows first, you could reverse the requested dimensions in your call to reshape() and then transpose the result:
A2 = reshape([C D], 4, 3)';
I believe this could be generalized to any number of dimensions with a combination of reshape() and permute().
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by