Split a larger matrix into smaller matrices

2 次查看(过去 30 天)
Hello All,
I have a [256 x 5 x 2000] matrix. I want to split this matrix into 5 [256 x 1 x 2000] matrices. Tried using mat2cell but it returns an error stating number of dimensions must match.
Could anyone please help me with this?
Thanks, \Kashif

采纳的回答

Star Strider
Star Strider 2016-3-17
The dimensions have to add to the same values in each dimension with mat2cell.
This works:
M = randi(9, 256, 5, 2000); % Create Matrix
C = mat2cell(M, 256, ones(1,5), 2000); % Split To Cells
  6 个评论
Kash022
Kash022 2016-3-17
@Star Strider: Yeps this works...even if I do plot(squeeze(C{1}(1,1,:))); Thanks!

请先登录,再进行评论。

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2016-3-17
C = num2cell(M,[1 3]);
  5 个评论
Stephen23
Stephen23 2016-3-17
编辑:Stephen23 2016-3-17
@ksnf3000: why are you using both num2cell and mat2cell? None of the answers do this. mat2cell splits up your array into pieces and returns a cell array... why do you want to split this up as well? You only need one of them.
Kash022
Kash022 2016-3-17
@Stephen Cobeldick: Yes , your right...can use any one. Thanks once again!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by