可能重复:
在 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()
可能重复:
在 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()
您可以使用isnan()
过滤掉不需要的元素:
mean(A(~isnan(A)))
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