How to generate random numbers from a normal distribution with specific mean and variance?
Solution 1
A standard normal distribution already has mean 0 and variance 1.
If you want to change the mean, just "translate" the distribution, i.e., add your mean value to each generated number. Similarly, if you want to change the variance, just "scale" the distribution, i.e., multiply all your numbers by sqrt(v)
. For example,
v = 1.5; % variance
sigma = sqrt(v); % standard deviation
mu = 2; % mean
n = 1000
X = sigma .* randn(n, 1) + mu;
stats = [mean(X) std(X) var(X)]
See the following article:
https://ch.mathworks.com/help/matlab/math/random-numbers-with-specific-mean-and-variance.html
for more info.
Solution 2
You could also call
normrnd(0,1,[M,N])
or
random('Normal',0,1,[M,N])
Ali Bassam
Peaceful Lebanese Citizen, Loves Computers and Technology, Programming and the Web. You can follow me here alibassam.com here twitter.com/alibassam_ and here.. on StackOverflow!
Updated on July 09, 2022Comments
-
Ali Bassam almost 2 years
I need to generate a Gaussian random sample of
n
numbers, with mean 0 and variance 1, using therandn
function.In general, how would I generate a Gaussian random sample
X
ofn
numbers, with meanmu
and variancev
, using therandn
function?