Asked by Zara Khan
on 16 Mar 2019

I am having a cell array. Each element of the cell array is a linear array . These arrays are of different sizes. when diving each array to some equal parts then I am not getting consistent parts. Suppose I want to divide each cell array by 20. When the size is greater than 20 then its ok. but when less than 20 then I am not getting any consistent parts. I want to divide each linear array to 20 equal parts. whatever the size is I dont want any padding of values. If the array size is 1×17 and diving with 20 will give 20 equal parts . The partition size will be less than 1. How can I do this ?

Answer by KSSV
on 16 Mar 2019

You interpolate your data into your desired size and then reshape. Read about interp1.

Zara Khan
on 16 Mar 2019

Sign in to comment.

Answer by Walter Roberson
on 16 Mar 2019

Next20 = @(V) ceil(length(V)/20) * 20;

Interp20 = @(V) interp1(V, linspace(1, length(V), Next20(V)));

Split20 = @(V) mat2cell(V, 1, 20*ones(1, length(V)/20));

new_cell = cellfun( @(V) Split20(Interp20(V)), cell_array, 'Uniform', 0);

Walter Roberson
on 17 Mar 2019

Zara Khan
on 17 Mar 2019

Error using zeros

Size inputs must be scalar.

Error in @(v,N)FirstN([v(:).',zeros(1,N)],N).'

Error in @(v)PadN(v,len)

Error in partition (line 67)

A = cellfun(@(v) PadN(v, len), A, 'uniform', 0);

I am always getting this error

Image Analyst
on 17 Mar 2019

Attach your m-file with the paper clip icon so we can solve this.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Zara Khan (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/450389-can-i-divide-a-linear-array-by-a-number-which-larger-than-its-size#comment_681788

## Image Analyst (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/450389-can-i-divide-a-linear-array-by-a-number-which-larger-than-its-size#comment_681794

Sign in to comment.