早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab中 NaN会参与运算吗如果我的矩阵里有的值为NaN,当我在算所有数据的平均数Mean和方差SD时,NaN值会对最后的结果有影响吗?我希望它们被忽略,不参与运算过程,

题目详情
matlab中 NaN会参与运算吗
如果我的矩阵里有的值为NaN,当我在算所有数据的平均数Mean和方差SD时,NaN值会对最后的结果有影响吗?
我希望它们被忽略,不参与运算过程,
▼优质解答
答案和解析
会影响的.用mean求均值时,如果矩阵中含有NaN,对应列的均值就是NaN.
例:
a =
1 2 3
NaN NaN 0
ans =
NaN NaN 1.5000
以下修改能不让NaN参与计算,但不一定是最优的.
mean(a(find(isnan(a) == 0)));
ans =
1.5000
但是这样求出的是矩阵中所有非NaN元素的均值,而非矩阵每一列的均值.如果你想求矩阵每一列的均值,可以循环每一列,执行以上
[hang lie] = size(a);
for i=1:lie
mean(a(find(isnan(a(:,i)) == 0),i))
end
.至于那个求方差的var好像只对向量能用,这里就不列出,你可以参照以上试试.