how I write independent random numbers from a normal distribution, for example between (0,1)?
25 views (last 30 days)
Show older comments
How I write independent random numbers from a normal distribution, for example between (0,1)? And how I can put this numbers in a matrix. Thank you.
0 Comments
Accepted Answer
Massimo Zanetti
on 8 Oct 2016
Edited: Massimo Zanetti
on 8 Oct 2016
For example, create 4x5 matrix of normal distributed random numbers:
A=randn(4,5)
Notice that a Gaussian distributed random variable takes values between (-inf,inf), there is no Gaussian variable in (0,1).
randn assumes the distribution is Gaussian with mean=0 and variance=1. If you want to customize it, you can do as follows:
MU=2; %mean
SIG=5; %variance
A= SIG*randn(4,5)+MU;
3 Comments
Walter Roberson
on 8 Oct 2016
nu(k) = randn();
If you want to create a vector of length N then
nu = randn(1,N);
The 1, N is the size, not the mean and standard deviation. For other means or standard deviations use the SIG MU transformation that Massimo Zanetti shows.
More Answers (1)
Walter Roberson
on 8 Oct 2016
If you restrict values drawn from a Normal distribution to any particular range (such as 0 to 1), then the values will no longer be normally distributed. It is impossible for anything to be Normally distributed unless it has infinite tails in both direction. MATLAB's randn() can produce values from -realmax to +realmax which is not truly infinite but the probability lost is tiny. Restricting to (0, 1) would be a significant probability loss and a major distortion of the normal distribution.
If you need non-uniform random numbers that must be within a particular finite range, then you should be considering using the Beta distribution; https://www.mathworks.com/help/stats/beta-distribution-1.html and http://www.mathworks.com/help/stats/betapdf.html
0 Comments
See Also
Categories
Find more on Random Number Generation 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!