The present code is a Matlab function that provides a generation of random numbers with Laplace (double exponential) distribution, similarly to built-in Matlab functions “rand” and “randn”. The output of the function is a matrix with Laplacian distributed numbers with mean value mu = 0 and standard deviation sigma = 1. If other values of mu and sigma are a must, then the following form could be used: mu + sigma*randl(m, n).
An example is given in order to clarify the usage of the function. For convenience, the input and output arguments are given in the beginning of the function.
The code is based on the theory described in:
 S. Kotz, T. Kozubowski, K. Podgorski. The Laplace Distribution and Generalizations. New York, Springer Science & Business Media, 2001.
Hristo Zhivomirov (2021). Generation of Random Numbers with Laplace Distribution (https://www.mathworks.com/matlabcentral/fileexchange/53397-generation-of-random-numbers-with-laplace-distribution), MATLAB Central File Exchange. Retrieved .
Thank you for your comment Mohammad! The appropriate correction will be made in the next update.
The variance of the samples is 2 not 1.
u1 and u2 are uniform between 0 and 1. then x=log(u1/u2) would be a Laplace distributed random variable with mean zero and variance of 2 (not 1)
it's very useful
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!