Generate Random Sample of 0's and 1's
4 views (last 30 days)
Show older comments
Hi guys,
how do I generate a random sample of 0's and 1's of size N, such that the probability of of 1 being chosen is p.
I can create a permutation however I can't seem to incorporate probability p into it. Plus, also is there a way I could quickly sum the components of the permutation.
Thanks,
Joe
0 Comments
Accepted Answer
More Answers (1)
Rajiv Ghosh-Roy
on 16 Jan 2014
How about
a = rand(1, N) < p
This creates a random vector of size N, and the < will return 1 if true, 0 if false.
4 Comments
Rajiv Ghosh-Roy
on 16 Jan 2014
Please consult the help for rand. rand(1, N) will generate a 1xN vector of random numbers uniformly distributed in [0, 1]. The probability that a number is in (0, p) is then p.
Suneesh
on 16 Jan 2014
Edited: Suneesh
on 16 Jan 2014
Joe, your problem may be stated as "Generate random numbers that have a Bernoulli distribution with the head(1) probability = p". There are several algorithms for generating random numbers and many start with generating random numbers that are uniformly distributed. This is what RAND does. The comparison " < p" owes to the inverse transform method of generating arbitrarily distributed random numbers from a uniform distribution. However, as far as I remember it should be "<=p". This method is standard in several text books on beginning probability theory. See also:
2. "Inverse Transform Method for simulating continuous random variables." in
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!