How can I make each cell array consistent in size?

2 次查看(过去 30 天)
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);

采纳的回答

Alex Mcaulley
Alex Mcaulley 2020-3-6
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);

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by