如何在Matlab中获取3D矩阵的平均值

时间:2013-06-19 22:30:52

标签: matlab matrix mean

我有一个(244,800,4)矩阵作为.mat文件。每层都有NaN。如何取每个图层的平均值。

所以基本上我每层需要一个平均值(整个图层)。

由于

4 个答案:

答案 0 :(得分:2)

nanmean(nanmean(matrixname))是我认为的伎俩。

答案 1 :(得分:0)

我为此使用nanmean,但它是统计工具箱的一部分。如果你没有,你需要自己动手。

您可以将图层拆分为单元格数组,并删除每个图层上的NAN值。像这样:

Mcells = arrayfun( @(x) M(:,:,x), 1:size(M,3), 'uni', false );
Mmeans = cellfun( @(x) mean(x(~isnan(x(:)))), Mcells );

答案 2 :(得分:-1)

mean(mean(matrixName))将为您提供矩阵中每个“图层”均值的1x1x4矩阵。您可能想要做一些事情来删除NaN。

答案 3 :(得分:-1)

我们找到了解决问题的简便方法

for ii=1:4
 a=reshape(PAR(:,:,ii),1,[]);
 b(ii)=nanmean(a);
end

我使用了reshape命令。 感谢乔治亚理工学院的Hanif Hosseini。