how rng and randn works in Matlab?
3 views (last 30 days)
Show older comments
I know rng in matlab is used to control random number generation. However, I am not sure of how it works. A professor wants me to figure it out. I have three sets of questions. First, using h=rng(0) returns a structured type h, and h.State has a sequence of numbers (625). What are these 625 numbers used for? Second, if the 625 numbers is a psudonumber stream, and if I use randn to generate a sequence of data from normal distribution, based on this stream (if I am correct), then what if the number of Guassian samples required is greater than 625 (e.g. using randn(n,1), and n > 625). Will the samples be repeated then? Finally, if I call randn twice, will the sequence of samples for the second time the same as that for the first time, or is it a new sequence of data, i.e., a continuation of the previously generated sequence of samples?
I hope there are someone who could help me to figure this out. Thank you very much!
Best Regards,
Weicheng Xue
0 Comments
Accepted Answer
Steven Lord
on 26 Jul 2019
See this post on Cleve's blog and this post on Loren's blog for more information on the random number generators and rng in MATLAB. [The second and third part of the series on Cleve's blog are the next two posts.]
0 Comments
More Answers (2)
Walter Roberson
on 25 Jul 2019
The choice of 624 as the state vector has to do with mathematical properties that hold when a certain quantity related to the size of the state vector turns out to be a Mersenne Prime; it has to do with showing that,
"Then each of the
possible combinations of bits occurs the same number of times in a period, except for the all-zero combination that occurs once less often."
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/231372/image.png)
This in turn has to do with showing that if you take consecutive values as coordinates in any dimension up to 623, then the points will fill the space evening instead of showing lines of values -- lines of values is a nasty problem in the older random number technique of Linear Congruential pseudo-random generation, showing up even in just plotting pairs of adjacent generated values.
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!