Splitting up and N size array into parts

I basically have a number of matrixes (N,1) that i want to split up into smaller arrays. I want to split them into say 10 pieces irrelevant of the number of components. I tried using reshape but that has issues with prime numbers
How can i split an N length array into 10 other pieces and store as a cell?

 Accepted Answer

N = 613;
P = 10;
X = rand(N, 1);
r = diff(fix(linspace(0, N, P+1)))
C = mat2cell(X, r, 1)

More Answers (1)

Use matcell, look at this example
N=randi(100,100,1)
B=mat2cell(N,10*ones(10,1),1)

3 Comments

The problem is my original matrix N isn't a nice 100 its 613 for example which is prime... so i need something that automatically splits it into X parts but they will be like
[{1x100} {1x100} {1x100} {1x100} {1x100} {1x100} {1x13}]
N=randi(100,613,1)
n=numel(N)
m=fix(n/100)
p=mod(n,100)
B=[mat2cell(N(1:m*100),100*ones(m,1),1);{N(100*m+1:100*m+p)}]
Ok thanks Ill have a look.. I found a way to do it also by just inserting a row of zeros and replacing the appropriate rows..Yours looks more simple though =]

Sign in to comment.

Categories

Find more on Elementary Math in Help Center and File Exchange

Asked:

on 3 Aug 2016

Answered:

on 3 Aug 2016

Community Treasure Hunt

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

Start Hunting!