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

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.
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 Centro de ayuda y File Exchange.

Preguntada:

el 21 de En. de 2014

Comentada:

el 21 de En. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by