在Matlab中用NaN的矩阵的均值

时间:2013-02-04 20:08:12

标签: matlab matrix nan

  

可能重复:
  Dealing with NaN’s in matlab functions

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

>> 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()

2 个答案:

答案 0 :(得分:5)

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

mean(A(~isnan(A)))

答案 1 :(得分: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