0

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

我努力了:

mean(length(mycell{:});

但是,对于均值函数来说,输入太多了。

谢谢。

4

2 回答 2

6

利用cellfun

mean( cellfun( @length, mycell ) )

顺便说一句,对于某些内置函数,最好编写

mean( cellfun( 'length', mycell ) )
于 2013-10-06T15:03:31.023 回答
4

如果您的元胞数组仅包含行向量或仅列向量,则有另一种方法不使用cellfun.

  • 如果您的元胞数组包含行向量:使用以下之一:

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

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

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

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

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

于 2013-10-06T17:31:22.323 回答