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

 Accepted Answer

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 Comments

Amit
Amit on 21 Jan 2014
Edited: Amit on 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.
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)

Sign in to comment.

More Answers (1)

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

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!