【问题标题】:Generate a random variable with an exponential distribution [closed]生成具有指数分布的随机变量
【发布时间】:2014-01-06 21:11:13
【问题描述】:
在使用rand 例程的 Matlab 中,我应该如何编写代码以从指数分布生成 500 个样本,其 pdf 为:
(1/mu)*exp(-x/mu); x>=0
【问题讨论】:
标签:
matlab
statistics
random-sample
exponential-distribution
【解决方案2】:
如果您有统计工具箱,您可以像使用 rand 一样简单地使用 exprnd:
r = exprnd(mu);
r 的大小将是平均值的大小,mu,或
r = exprnd(mu,m,n);
其中mu 是标量平均值,m 和n 是所需输出的大小。如果您输入edit exprnd,您会看到代码实际上与@LuisMendo 提供的代码完全相同。您可能会发现与exponential distribution 相关的其他功能对您有帮助,例如exppdf 和expcdf。这些也很简单,并实现了您可以在教科书或*中找到的基本方程式。
【解决方案3】:
使用random 函数。
例如,要创建一个 4*6 矩阵,其中 mu=1.3 且具有指数分布,请使用:
random('Exponential',1.3,4,6)
或
random('exp',1.3,4,6)