how to calcuate mean with NaN
2 次查看(过去 30 天)
显示 更早的评论
Dear Friend,
There are two matrixs with the same size, there are some NaNs in each matrix. I want to calculate the mean of corresponding datapoints, which might contain NaN. for example, A(1,2)=NaN, B(1,2)=3, I need the average of the sum of 3+NaN divided by the effective number of data points, here is 1 since A(1,2) is NaN, to be 3. If A(2,2)=2,B(2,2)=5, I need the average to be (2+5)divided by 2, which equals 3.5 since neither A(2,2) and B(2,2) contains NaN. Is there a way to achieve this goal without using a for loop? thanks
0 个评论
采纳的回答
Sven
2013-9-12
编辑:Sven
2013-9-12
If you have the Statistics Toolbox, just replace calls to mean() with calls to nanmean().
Here's an example:
A = reshape(1:4,2,2);
B = A + 10;
A([1 3]) = nan % Set some NaNs
B([1 2]) = nan
yourMean = nanmean(cat(3,A,B),3)
Which results in:
A =
NaN NaN
2 4
B =
NaN 13
NaN 14
yourMean =
NaN 13
2 9
更多回答(2 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!