Generating a vector containing the sizes of all cells of a cell array, along a specific dimension

1 view (last 30 days)
Is there a way to vectorize this? (I tried with "cellfun", but did not succeed).
for i = 1:numel(a)
s(i) = size(a{i}, 1);
Where a sample of "a" is provided in attachment.

Sign in to comment.

Accepted Answer

the cyclist
the cyclist on 25 Jan 2017
Edited: the cyclist on 25 Jan 2017
Does this give what you want?
s = cellfun(@(x)size(x,1),a);

More Answers (1)

Jan on 26 Jan 2017
Edited: Jan on 26 Jan 2017
cellfun has some builtin-functions, which are provided as strings and much faster than using anomyous functions:
s = cellfun('size', a, 1)
Unfortunately they appear in the docs as "Backward compatibility" only, but they are jewels.


Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!