0

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

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

谢谢

4

4 回答 4

2

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

于 2015-03-17T14:37:45.080 回答
0

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

您可以将图层拆分为一个元胞数组并删除每个图层上的 NAN 值。像这样的东西:

Mcells = arrayfun( @(x) M(:,:,x), 1:size(M,3), 'uni', false );
Mmeans = cellfun( @(x) mean(x(~isnan(x(:)))), Mcells );
于 2013-06-19T22:40:23.153 回答
-1

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.

于 2013-06-19T22:35:43.457 回答
-1

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

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

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

于 2013-06-20T12:06:53.703 回答