Producing random numbers in Matlab?
Show older comments
How can I produce random binary numbers with exact number of zeros or ones? for example:
[0 1 0 1 0 1 0 0 1 0] ===> number of ones are 4,
[1 1 0 0 1 0 0 1 0 0] ===> again number of ones are 4,
[1 0 0 1 0 0 0 0 0 1] ===> number of ones are 3, which is not allowed.
I just want exact number of ones in output of random sets.
Accepted Answer
More Answers (3)
Torsten
on 24 Jul 2015
x=zeros(10);
[y,idx]=datasample(1:10,4,'Replace',false);
x(idx)=1;
Best wishes
Torsten.
2 Comments
Azzi Abdelmalek
on 24 Jul 2015
This doesn't work
Azzi Abdelmalek
on 24 Jul 2015
With randi, you can get the same number more then once
Azzi Abdelmalek
on 24 Jul 2015
Using rand
n=4
m=6
a=[ones(1,n), zeros(1,m)]
[~,idx]=sort(rand(1,m+n))
out=a(idx)
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!