我有一个 (244,800,4) 矩阵作为 .mat 文件。每层都有NaN。我怎样才能取每一层的平均值。
所以基本上我每层需要一个平均值(整个层)。
谢谢
nanmean(nanmean(matrixname))
我认为的伎俩。
我使用nanmean
它,但它是统计工具箱的一部分。如果你没有,你需要自己动手。
您可以将图层拆分为一个元胞数组并删除每个图层上的 NAN 值。像这样的东西:
Mcells = arrayfun( @(x) M(:,:,x), 1:size(M,3), 'uni', false );
Mmeans = cellfun( @(x) mean(x(~isnan(x(:)))), Mcells );
mean(mean(matrixName))
will give you a 1x1x4 matrix of the mean of each 'layer' in your matrix. You may want to do something to remove the NaNs though.
我们找到了解决问题的简单方法
for ii=1:4
a=reshape(PAR(:,:,ii),1,[]);
b(ii)=nanmean(a);
end
我使用了重塑命令。感谢乔治亚理工学院的 Hanif Hosseini。