How do I convert a 2d matrix to a 3d matrix?

191 次查看(过去 30 天)
A(:,:,1) = ones(2,4);
A(:,:,2) = 2*ones(2,4);
A(:,:,3) = 3*ones(2,4);
C = [ones(2,4);2*ones(2,4);3*ones(2,4)];
In this post and this post, converting 3d matrix A to 2d matrix C is discussed.
However, how do I convert 2d matrix C back to 3d matrix A?
A(:,:,1) =
1 1 1 1
1 1 1 1
A(:,:,2) =
2 2 2 2
2 2 2 2
A(:,:,3) =
3 3 3 3
3 3 3 3
C =
1 1 1 1
1 1 1 1
2 2 2 2
2 2 2 2
3 3 3 3
3 3 3 3

采纳的回答

Akira Agata
Akira Agata 2018-12-26
It's time to use reshape function! Please try the following:
A = reshape(C',[2,3,3]);
  1 个评论
Linjun He
Linjun He 2018-12-26
I modified the question. And now the answer from @Akira is
A = reshape(C',[2,4,3]);
It works well in this case.
Thank you!

请先登录,再进行评论。

更多回答(1 个)

Linjun He
Linjun He 2018-12-26
编辑:Linjun He 2018-12-26
Similarly, I find this works:
permute(reshape(C, 2, 3, 4), [1 3 2])
If you find answer from @Akira does not work in your case, you can refer to this answer :p
And this answer is from @Titus

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by