Generate Random Sample of 0's and 1's
7 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
更多回答(1 个)
Rajiv Ghosh-Roy
2014-1-16
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 个评论
Rajiv Ghosh-Roy
2014-1-16
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
2014-1-16
编辑:Suneesh
2014-1-16
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Random Number Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!