Find largest array size in cell of many arrays

71 views (last 30 days)
I have a cell each cell storing a different sized array. How do i find the largest width and height of all the arrays ?
I tried
size(test{:}(:,1,1))
test is my cell. so meaning for all test, find the size of (:,1,1). But it is wrong of coz so help me thanks.
Like
cell{1} = 10x10 uint8
cell{2} = 10x11
cell{3} = 5x99
so
min_size_of_cell_array(cell{:}) = 5,10
like that
  1 Comment
Stephen23
Stephen23 on 17 Jun 2016
Have a look at cellfun: it has some handy features that you can use:
>> C{1} = NaN(10,10);
>> C{2} = zeros(10,11);
>> C{3} = ones(5,99);
>> cellfun('size',C,1) % rows
ans =
10 10 5
>> cellfun('size',C,2) % columns
ans =
10 11 99

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 17 Jun 2016
C = arrayfun(@(x)rand(randi([1 20],1,2)),(1:8)','un',0);% example
[s,d] = cellfun(@size,C);
out = max([s,d]);
  2 Comments
RuiQi
RuiQi on 17 Jun 2016
Thanks ! The cellfun is really useful !
Avik Mahata
Avik Mahata on 13 Jan 2019
How do I convert the maximum cellarray to matrix after identifying the particular cell array?

Sign in to comment.

More Answers (1)

shashmitha lakshmi
shashmitha lakshmi on 16 Jan 2020
How to find the maxmimum length array between two arrays
  1 Comment
Image Analyst
Image Analyst on 17 Jan 2020
Try this:
% Create our data, a cell array of vectors of random lengths.
for k = 1 : 100
thisLength = randi(50); % Anywhere from 1 to 50.
ca{k} = rand(1, thisLength); % Create row vector of this length.
end
% Now that data has been created,
% find the lengths of all the elements.
allLengths = cellfun(@length, ca)
% Now find the longest vector between element 15 and 35 (for example)
maxLength = max(allLengths(15:35))

Sign in to comment.

Categories

Find more on Structures in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!