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

4 vues (au cours des 30 derniers jours)
walter
walter le 21 Jan 2014
Commenté : Azzi Abdelmalek le 21 Jan 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

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 21 Jan 2014
Modifié(e) : Azzi Abdelmalek le 21 Jan 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 commentaires
Amit
Amit le 21 Jan 2014
Modifié(e) : Amit le 21 Jan 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 le 21 Jan 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)

Connectez-vous pour commenter.

Plus de réponses (1)

Amit
Amit le 21 Jan 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

Catégories

En savoir plus sur Random Number Generation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by