Reshape - columnwise. any command to linewise?

help reshape
RESHAPE Reshape array.
RESHAPE(X,M,N) returns the M-by-N matrix whose elements are taken columnwise from X.
I need some way to turn a matrix linewise instead.

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 29 Nov 2011
reshape(X.',M,N).'

8 commentaires

Vasco
Vasco le 29 Nov 2011
tytyty. =)
Giacomo Perantoni
Giacomo Perantoni le 21 Fév 2019
The transpose operator may be expensive for a large matrix. Is there an alternative way to solve the original problem without the additional computational cost?
winkmal
winkmal le 14 Jan 2020
Should M and N not be switched in your command?
Amir
Amir le 18 Fév 2020
M and N should be switched to return the M-by-N matrix.
The command should be reshape(X.',N,M).'
Med Aymane Ahajjam
Med Aymane Ahajjam le 18 Fév 2020
Life saver!!! Thank you!
sohaib bhatti
sohaib bhatti le 30 Août 2021
How can the same be done if X is a 3d matrix?
Also, what if I want to reshape to a 3d matrix? Is there anyway to just work row major in matlab?
Loic -Hi btw ;-) - you could use permute for ND-array (there is also pagetranspose command more restrictive)
X=randi(9,[6 5])
X = 6×5
1 2 4 9 1 9 1 7 8 1 5 6 6 4 8 4 2 7 8 2 2 4 5 5 9 7 1 7 1 8
permute(reshape(X.',[size(X,2) 2 3]),[2 1 3])
ans =
ans(:,:,1) = 1 2 4 9 1 9 1 7 8 1 ans(:,:,2) = 5 6 6 4 8 4 2 7 8 2 ans(:,:,3) = 2 4 5 5 9 7 1 7 1 8

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Operators and Elementary Operations dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by