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.

 Akzeptierte Antwort

Weitere Antworten (3)

Torsten
Torsten am 24 Jul. 2015

1 Stimme

x=zeros(10);
[y,idx]=datasample(1:10,4,'Replace',false);
x(idx)=1;
Best wishes
Torsten.
david O
david O am 24 Jul. 2015
Bearbeitet: david O am 24 Jul. 2015

0 Stimmen

x=zeros(10,1,1);
for i=1:4
x(randi(10))=1;
end

2 Kommentare

Azzi Abdelmalek
Azzi Abdelmalek am 24 Jul. 2015
This doesn't work
Azzi Abdelmalek
Azzi Abdelmalek am 24 Jul. 2015
With randi, you can get the same number more then once

Melden Sie sich an, um zu kommentieren.

Azzi Abdelmalek
Azzi Abdelmalek am 24 Jul. 2015

0 Stimmen

Using rand
n=4
m=6
a=[ones(1,n), zeros(1,m)]
[~,idx]=sort(rand(1,m+n))
out=a(idx)

Kategorien

Mehr zu Random Number Generation finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by