how to calcuate mean with NaN
9 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Sven
on 12 Sep 2013
Edited: Sven
on 12 Sep 2013
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
More Answers (2)
Shashank Prasanna
on 12 Sep 2013
You can use the NANMEAN function part of the Statistics Tbx:
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!