Producing random numbers in Matlab?

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.

Plus de réponses (3)

Torsten
Torsten le 24 Juil 2015
x=zeros(10);
[y,idx]=datasample(1:10,4,'Replace',false);
x(idx)=1;
Best wishes
Torsten.
david O
david O le 24 Juil 2015
Modifié(e) : david O le 24 Juil 2015
x=zeros(10,1,1);
for i=1:4
x(randi(10))=1;
end

2 commentaires

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

Connectez-vous pour commenter.

Azzi Abdelmalek
Azzi Abdelmalek le 24 Juil 2015
Using rand
n=4
m=6
a=[ones(1,n), zeros(1,m)]
[~,idx]=sort(rand(1,m+n))
out=a(idx)

Catégories

En savoir plus sur Random Number Generation dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by