MATLAB Answers

Find largest array size in cell of many arrays

180 views (last 30 days)
RuiQi
RuiQi on 17 Jun 2016
Commented: Image Analyst on 17 Jan 2020 at 2:34
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

Stephen Cobeldick
Stephen Cobeldick 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 at 18:08
How to find the maxmimum length array between two arrays

  1 Comment

Image Analyst
Image Analyst on 17 Jan 2020 at 2:34
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.

Sign in to answer this question.

Tags