生成具有指数分布的随机变量

时间:2013-12-18 15:43:24

标签: matlab statistics random-sample exponential-distribution

在使用rand例程的Matlab中,我应该如何编写代码以从指数分布生成500个样本,其pdf为:

(1/mu)*exp(-x/mu); x>=0

3 个答案:

答案 0 :(得分:3)

假设您必须使用rand函数执行此操作:利用minus logarithm of a normalized uniform RV是规范化指数RV的属性:

samples = -mu*log(rand(1,500));

答案 1 :(得分:1)

使用random功能。 例如,使用指数分布创建一个mu = 1.3的4 * 6矩阵:

random('Exponential',1.3,4,6)

random('exp',1.3,4,6)

答案 2 :(得分:0)

如果您拥有统计工具箱,则可以像使用rand一样使用exprnd

r = exprnd(mu);

其中r的大小将是平均值的大小,mu

r = exprnd(mu,m,n);

其中mu是标量平均值,mn是所需输出的大小。如果您输入edit exprnd,您会发现代码与@LuisMendo提供的代码几乎完全相同。您可能会发现与exponential distribution相关的其他功能对您有帮助,例如exppdfexpcdf。这些也很简单,并且可以在教科书或维基百科上找到基本的等式。

相关问题