Why rand function is not uniform in large intervals?
Show older comments
I am using rand function to generate uniformly distributed random numbers in the interval [10e-6 and 1.] But the function generates the nos. which are close to 1 (RATHER THAN BEING UNIFORM IN THE ENTIRE INTERVAL]. I have tried with 10 nos. and 100 nos. But I found that most the nos. generated are close to 1. Then, how it will be a uniform distribution??
3 Comments
Walter Roberson
on 23 Jun 2016
Please show your code.
Adam
on 23 Jun 2016
rand always generates numbers between 0 and 1. What you then do with those to get them into a range you are interested in is entirely up to you.
John D'Errico
on 23 Jun 2016
Rand IS uniform, and it generates numbers in the range from 0 to 1. If you are mis-using the results of rand in some way, then expect strange results. So show what you wrote.
Accepted Answer
More Answers (2)
Roger Stafford
on 26 Jun 2016
Edited: Roger Stafford
on 26 Jun 2016
It seems clear from his most recent comment that where Pankaj says “uniform” he actually means a "logarithmic" distribution where there would be as many samples in the interval [10^(-6),10^(-5)] as in the interval [10^(-1),10^(0)], and indeed in any interval [10^(-k),10^(-k+1)], -6<=k<=-1. If that is the case, the proper code would be:
r = 10.^(-6*rand(1,n));
1 Comment
Roger Stafford
on 26 Jun 2016
Oops! I didn't notice the same answer given by John earlier on.
pankaj singh
on 27 Jun 2016
0 votes
Categories
Find more on Uniform Distribution (Continuous) in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!