MATLAB Answers

# How can I make each cell array consistent in size?

2 views (last 30 days)
Farshid Daryabor on 6 Mar 2020
I'm really grateful for anyone telling me how to make the all double arrays in cell equal in zise (please find attached). For instance, I want to the all double in cell with the size 1715*11. The following code doesn'y work.
>> N = cellfun(@(x) length(squeeze(x(:,1))) , P); M = max(N);
>> N1 = cellfun(@(x) length(squeeze(x(1,:))) , P); M1 = max(N1);
>> newP = cellfun(@(x) [x, zeros( size(x, 1), M1-size(x, 2) ); zeros( M-size(x, 1), M1 )], P, 'uni' , 0);
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Alex Mcaulley on 6 Mar 2020
N = max(cellfun('size',P,1));
M = max(cellfun('size',P,2));
newP = cellfun(@(x) [x, zeros(size(x, 1), M-size(x, 2)); zeros(N-size(x, 1), M)], P, 'uni' , 0);
##### 1 CommentShowHide None
Farshid Daryabor on 6 Mar 2020
Thanks Alex

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!