MATLAB: Normally distributed pseudorandom numbers using randn

randn mean

Why doesn't
EDU>> r = 10.5 + 1.*randn(1,10);
EDU>> mean(r)
ans =
10.5848
return a mean of 10.5 if I specified that this set of pseudorandom numbers should have a mean of 10.5 in the command line?

Best Answer

You cannot expect it to have exactly a mean of 10.5 in one realization of the random vector. If you repeat that experiment a large number of times, you will see the mean of the means will come very close to 10.5
for nn = 1:1e4
x = 10.5+randn(1,10);
meanz(nn) = mean(x);
end
mean(meanz)
Just taking a sample from a N(mu,sigma^2) population does not guarantee the mean of the sample will be mu. You have to look at the sampling distribution of the sample mean.