嗨,我在 matlab 中有一个单元格数组,其中单元格的长度不同。我如何确定细胞的平均长度。
我努力了:
mean(length(mycell{:});
但是,对于均值函数来说,输入太多了。
谢谢。
利用cellfun
mean( cellfun( @length, mycell ) )
顺便说一句,对于某些内置函数,最好编写
mean( cellfun( 'length', mycell ) )
如果您的元胞数组仅包含行向量或仅列向量,则有另一种方法不使用cellfun
.
如果您的元胞数组包含行向量:使用以下之一:
length([mycell{:}])/numel(mycell)
length(horzcat(mycell{:}))/numel(mycell)
如果您的元胞数组包含列向量:
length(vertcat(mycell{:}))/numel(mycell)
如果单元格数组很小,这个答案比@Shai快。对于中等或大尺寸,或作为一般答案,他的解决方案(第二版)更好。