會影響的。用mean求均值時,如果矩陣中含有NaN,對應列的均值就是NaN。
例:
a =
1 2 3
NaN NaN 0
ans =
NaN NaN 1.5000
以下修改能不讓NaN參與計算,但不一定是最優的。
mean(a(find(isnan(a) == 0)));
1.5000
但是這樣求出的是矩陣中所有非NaN元素的均值,而非矩陣每一列的均值。如果你想求矩陣每一列的均值,可以迴圈每一列,執行以上
[hang lie] = size(a);
for i=1:lie
mean(a(find(isnan(a(:,i)) == 0),i))
end
.至於那個求方差的var好像只對向量能用,這裡就不列出,你可以參照以上試試。
會影響的。用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好像只對向量能用,這裡就不列出,你可以參照以上試試。