How to generate 0 and 1 with equal probability using 'randi' function?

51 views (last 30 days)
Binary random number generator, generating 0 and 1 with equal probability (using 'randi' function). i tried with randi (M, N, [0 1]) to generate random numbers of matrix size MxN in the range 0 and 1 with equal probability.
  1 Comment
Md. Tariqul Amin
Md. Tariqul Amin on 27 May 2012
i tried with *randi (M, N, [0 1])* to generate random numbers of matrix size MxN in the range 0 and 1 with equal probability. But,it's not working

Sign in to comment.

Accepted Answer

Geoff
Geoff on 27 May 2012
You did it backwards. Do this:
nums = randi([0 1], M, N)
Please note that while there is equal probability of randomly generating a zero or a one, that does NOT mean that your matrix will have the same number of zeros and ones.
If you require exactly 50% 0/1, then you need to do this:
nums = mod( reshape(randperm(M*N), M, N), 2 );
Bearing in mind that M*N must be an even number.
  2 Comments
Usman  Ali
Usman Ali on 17 Feb 2014
Hi dear, I have the same question with different parameters. I have 4 different discrete signals. each with 1000 samples per second. I want to generate the sum of all these 4 signals with equal probab such that at the end I get 100 signals (this contains 25% of each signal, 25 copies of same signal at different places). Hope that you get my point. I can apply switch and case for the for signals, only I need to generate number between 1 and 4 with equal probability of occurance

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!