是否有一行命令允许您在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()
答案 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