4

可能重复:
在 matlab 函数中处理 NaN

是否有一行命令允许您NaN在 Matlab 中获取矩阵的元素平均值(忽略 's)?例如,

>> A = [1 0 NaN; 0 3 4; 0 NaN 2]

A =

     1     0   NaN
     0     3     4
     0   NaN     2

所以mean(A)应该等于(1+3+2+4+0+0+0)/7 = 1.4286

另外,我无权访问统计工具箱,因此无法使用nanmean()

4

2 回答 2

5

您可以使用isnan()过滤掉不需要的元素:

mean(A(~isnan(A)))
于 2013-02-04T20:11:25.117 回答
2
nanmean

执行就像mean,但忽略 nans。

例如:

>> A = [1 0 NaN; 0 3 4; 0 NaN 2]
A =
     1     0   NaN
     0     3     4
     0   NaN     2
>> nanmean(A)
ans =
         0.333333333333333                       1.5                         3
>> nanmean(A,2)
ans =
                       0.5
          2.33333333333333
                         1
>> nanmean(A(:))
ans =
          1.42857142857143
于 2013-02-04T20:26:34.577 回答