Filter löschen
Filter löschen

generate n random number between two numbers follow exponential distribution

9 Ansichten (letzte 30 Tage)
I need to generate n random number between a and b which follow the exponential distribution (In this perticular case a=0, b=75, random number =t=occurance time; I need exactly "n=60" random numbers of "t" which are less than 75). here is what I have done:
mu=475; % return period
lambda=1/mu; % occurance rate
u=rand(100,1); % uniform random numbers between 0 and 1
t=icdf('Exponential',u,mu); % exponential random numbers of time

Akzeptierte Antwort

Star Strider
Star Strider am 12 Feb. 2019
I would use the Statistics and Machine Learning Toolbox exprnd (link) function.
Experiment to get the result you want.
  2 Kommentare
Mos_bad
Mos_bad am 12 Feb. 2019
Thanks for the response. If doing so, how I can generate ''n'' random numbers between "a" and "b" ?
Star Strider
Star Strider am 12 Feb. 2019
Bearbeitet: Star Strider am 12 Feb. 2019
My pleasure.
Try this:
mu = 475;
n = 1E+5;
R = exprnd(mu,1,n);
a = 10;
b = 20;
Rbounded = R((R>=a) & (R<=b));
n = 42;
R_return = Rbounded(randperm(numel(Rbounded),n));
That will give you ‘n’ values from the exponential distribution with .
Experiment to get the result you want.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jeff Miller
Jeff Miller am 12 Feb. 2019
With Cupid the command is
somerands = TruncatedX(Exponential(lambda),a,b).Random(n,1);

Community Treasure Hunt

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

Start Hunting!

Translated by