For a recent project one of my research students needed to generate exponentially distributed random numbers in MATLAB. The Statistics Toolbox has a built-in function to do this, but I don’t have a license for this toolbox. Below is the code we wrote. It performs a log transformation to convert a uniformly distributed random number between zero and one (rand(1)
) to an exponentially distributed random number (tau
) drawn from an exponential distribution with mean 1/lambda
. Note that in MATLAB, the log
function is the natural logarithm. Simple!
tau = -log(rand(1))/lambda;