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.

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2011년 11월 29일

7 개 추천

reshape(X.',M,N).'

댓글 수: 8

Vasco
Vasco 2011년 11월 29일
tytyty. =)
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 2020년 1월 14일
Should M and N not be switched in your command?
Amir
Amir 2020년 2월 18일
M and N should be switched to return the M-by-N matrix.
The command should be reshape(X.',N,M).'
Life saver!!! Thank you!
sohaib bhatti
sohaib bhatti 2021년 8월 30일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

태그

질문:

2011년 11월 29일

댓글:

2022년 4월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by