在使用rand
例程的Matlab中,我应该如何编写代码以从指数分布生成500个样本,其pdf为:
(1/mu)*exp(-x/mu); x>=0
答案 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
是标量平均值,m
和n
是所需输出的大小。如果您输入edit exprnd
,您会发现代码与@LuisMendo提供的代码几乎完全相同。您可能会发现与exponential distribution相关的其他功能对您有帮助,例如exppdf
和expcdf
。这些也很简单,并且可以在教科书或维基百科上找到基本的等式。