function x = myexprnd(lambda,r,c) % x = myexprnd(lambda,r,c) % % Return an R by C matrix of random samples from the exponential % distribution with parameter LAMBDA, which must be a scalar or of % size R by C. % % Values of LAMBDA must be greater than zero. % % Example: % To view the PDF of a single exponential random variable of % mean 1 and standard deviation 1, use the command ... % n=10000; x=myexprnd(1,1,n); hist(x,n/100); avg_x = sum(x)/n % % Reference: http://en.wikipedia.org/wiki/Exponential_distribution if nargin < 2, [r,c] = size (lambda); end if any(size(lambda) - [r,c]) & length(lambda) ~= 1 size_of_lambda = size(lambda) r c error(' myexprnd: LAMBDA must be a scalar or of size R by C') end if any(lambda<=0) || any(lambda==Inf) error(' myexprnd: LAMBDA must be greater than zero') end if length(lambda) == 1 lambda = lambda * ones(r,c); end x = -log( 1 - rand(r,c) ) ./ lambda; % -------------------------------------------------------------- MYEXPRND