我有一个(244,800,4)矩阵作为.mat文件。每层都有NaN。如何取每个图层的平均值。
所以基本上我每层需要一个平均值(整个图层)。
由于
答案 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。