Split a larger matrix into smaller matrices

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

 Akzeptierte Antwort

Star Strider
Star Strider am 17 Mär. 2016

1 Stimme

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 Kommentare

Kash022
Kash022 am 17 Mär. 2016
Thanks. so now how do I access the individual matrices because C is now 1x5 cell?
Andrei Bobrov
Andrei Bobrov am 17 Mär. 2016
C{1} - first matrice, C{2} - second and so on
Kash022
Kash022 am 17 Mär. 2016
Bearbeitet: Stephen23 am 17 Mär. 2016
Yes, I am trying this command and its returning me "error using plot, invalid first data argument"
plot(squeeze(K{1}(1,1,:)),'r');
I’m not certain what you want to plot.
See if this does what you want:
plot(squeeze(C{1}))
Kash022
Kash022 am 17 Mär. 2016
@Star Strider: Yeps this works...even if I do plot(squeeze(C{1}(1,1,:))); Thanks!
Star Strider
Star Strider am 17 Mär. 2016
My pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 17 Mär. 2016

2 Stimmen

C = num2cell(M,[1 3]);

5 Kommentare

Kash022
Kash022 am 17 Mär. 2016
Thanks but while doing plot(squeeze(K(1,1,:))); gives me an error.
Andrei Bobrov
Andrei Bobrov am 17 Mär. 2016
What is K? It is C?
Kash022
Kash022 am 17 Mär. 2016
Bearbeitet: Stephen23 am 17 Mär. 2016
C = mat2cell(My_matrix, 256, ones(1,5), 2000);
K = num2cell(C,[1 5]);
Stephen23
Stephen23 am 17 Mär. 2016
Bearbeitet: Stephen23 am 17 Mär. 2016
@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 am 17 Mär. 2016
@Stephen Cobeldick: Yes , your right...can use any one. Thanks once again!

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by