Reshaping a 2 d matrix into a 3 d matrix row wise.

조회 수: 2(최근 30일)
Russ
Russ 2020년 2월 21일
댓글: Russ 2020년 2월 21일
Hello, and thanks for taking the time to read this:
I have a 100 x 99 matrix of ratings. I would like to reshape the matrix into a 9x11x100 array where the first row represents the first 9 horizsontal items of the first row. Byu way of a smaller example, imagine the data were:
7 6 5 4 5 6
1 5 6 6 6 2
1 6 6 6 6 1
5 5 6 6 7 2
I would like the result to be:
765
456
156
662
556
672
Can anyone please help with this?

채택된 답변

the cyclist
the cyclist 2020년 2월 21일
편집: the cyclist 2020년 2월 21일
For your small example, if A is your original matrix, then
permute(reshape(A',3,2,[]),[2 1 3])
For the larger one,
permute(reshape(A',9,11,[]),[2 1 3])
  댓글 수: 3
Russ
Russ 2020년 2월 21일
Yep, now I understand where I went wrong. The first row was supposed to be the first 11 items, not the first 9 items. Thanks so much for solving this problem!

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

추가 답변(1개)

Daniel Vieira
Daniel Vieira 2020년 2월 21일
A=randi(10,100,99); % example of what your matrix might be
B=permute(reshape(A',9,11,[]),[2 1 3]) % solution
  댓글 수: 1
Russ
Russ 2020년 2월 21일
Thanks! The following alternative seemed to do the trick.
permute(reshape(A', 11,9,[]), [2 1 3])
Thanks!
Russ

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

Community Treasure Hunt

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

Start Hunting!

Translated by