Asked by Zara Khan
on 16 Mar 2019 at 10:19

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 at 10:31

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

Zara Khan
on 16 Mar 2019 at 11:01

Sign in to comment.

Answer by Walter Roberson
on 16 Mar 2019 at 17:31

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 at 7:14

Zara Khan
on 17 Mar 2019 at 9:52

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 at 15:35

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.