how can i generate a random number out of a range??

7 visualizaciones (últimos 30 días)
walter
walter el 21 de En. de 2014
Comentada: Azzi Abdelmalek el 21 de En. de 2014
i need to generate a random number out of a range, i did it inside with r=-1+(2).*rand(1,1) %my interval is (-1;1)
how can i do to get a random number that is not in this interval?? i mean, a number which satisfy r<-1 U 1<r

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 21 de En. de 2014
Editada: Azzi Abdelmalek el 21 de En. de 2014
a=rand
out=1/a*sign(a-0.5)
%or for a vector
n=10;
a=rand(1,n);out=1./a.*sign(a-0.5)
  2 comentarios
Amit
Amit el 21 de En. de 2014
Editada: Amit el 21 de En. de 2014
I think this technique would be biased. The negative random number would be always bigger while the positive ones will always be smaller.
Azzi Abdelmalek
Azzi Abdelmalek el 21 de En. de 2014
You are right, if we use rand twice, it will be different
n=10;
out=1./rand(1,n).*sign(rand(1,n)-0.5)

Iniciar sesión para comentar.

Más respuestas (1)

Amit
Amit el 21 de En. de 2014
A = [1/rand -1/rand];
r = A(randi(2));
(or)
r = [1/rand -1/rand]*(randperm(2,2) -1)';
Either will generate a random number from r<-1 U 1<r

Categorías

Más información sobre Random Number Generation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by