Question of mean
Show older comments
When I write a program about consumption (C) with 10^5 trajectories, I want to calculate the expectation of them with the command mean(C(:,j)). However, at j=1, all the C are equal to 0.86, but the mean(C(:,1))=0.859999999999891. Would anyone tell me why it happens and how to correct it please? Thank you.
Accepted Answer
More Answers (1)
Titus Edelhofer
on 21 May 2012
Hi,
0.86 is not exactly representable in computers double precision representation:
fprintf('%.20f\n', 0.86)
0.85999999999999999000
Titus
3 Comments
Oleg Komarov
on 21 May 2012
http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
Tommy
on 21 May 2012
Walter Roberson
on 21 May 2012
Recode your test to
if C(i,j) * size(C,1) >= sum(C(:,j))
Categories
Find more on Loops and Conditional Statements 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!