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.

 Respuesta aceptada

Más respuestas (3)

Torsten
Torsten el 24 de Jul. de 2015
x=zeros(10);
[y,idx]=datasample(1:10,4,'Replace',false);
x(idx)=1;
Best wishes
Torsten.
david O
david O el 24 de Jul. de 2015
Editada: david O el 24 de Jul. de 2015
x=zeros(10,1,1);
for i=1:4
x(randi(10))=1;
end

2 comentarios

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

Iniciar sesión para comentar.

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

Categorías

Más información sobre Random Number Generation en Centro de ayuda y File Exchange.

Preguntada:

el 24 de Jul. de 2015

Respondida:

el 24 de Jul. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by