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

3 次查看(过去 30 天)
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);
end
Where a sample of "a" is provided in attachment.
  2 个评论
the cyclist
the cyclist 2017-1-25
编辑:the cyclist 2017-1-25
It would be much easier to help if you posted code that actually creates a small example of a, rather than pseudocode that illustrates what you mean.
Is
AGA
AGA
meant to represent a 2x3 character array? So, is it correct that
a{1,1} = ['AGA';'AGA'];
would be an example of one element? It seems like that's what you mean, but wanted to be sure.

请先登录,再进行评论。

采纳的回答

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

更多回答(1 个)

Jan
Jan 2017-1-26
编辑:Jan 2017-1-26
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.

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by