确定单元阵列中单元的平均长度

时间:2013-10-06 14:52:11

标签: matlab cell average

嗨我在matlab中有一个单元格数组,其中单元格的长度不同。我如何确定细胞的平均长度。

我试过了:

mean(length(mycell{:});

然而,这对于平均函数来说输入太多了。

感谢。

2 个答案:

答案 0 :(得分:6)

使用cellfun

mean( cellfun( @length, mycell ) )
BTW,对于某些内置函数,编写

可能更好
mean( cellfun( 'length', mycell ) )

答案 1 :(得分:4)

如果您的单元格数组仅包含行向量或仅包含列向量,则有一种替代方法不使用cellfun

  • 如果您的单元格数组包含行向量:请使用以下任一项:

    length([mycell{:}])/numel(mycell)

    length(horzcat(mycell{:}))/numel(mycell)

  • 如果您的单元格数组包含列向量:

    length(vertcat(mycell{:}))/numel(mycell)

如果单元格数组较小,则此答案比@Shai's快。对于中等或大尺寸,或作为一般答案,他的解决方案(第二版)更好。