-4

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

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

3 回答 3

3

假设您确实必须使用以下rand函数:利用归一化均匀 RV 的负对数是归一化指数 RV 的属性:

samples = -mu*log(rand(1,500));
于 2013-12-18T15:46:55.137 回答
1

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

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

或者

random('exp',1.3,4,6)
于 2013-12-19T10:01:23.173 回答
0

如果您有统计工具箱,您可以exprnd像使用一样简单地使用rand

r = exprnd(mu);

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

r = exprnd(mu,m,n);

其中mu是标量均值, 和mn所需输出的大小。如果您键入edit exprnd,您会看到代码实际上与@LuisMendo 提供的代码完全相同。您可能会发现与指数分布相关的其他函数对您有帮助,例如exppdfexpcdf。这些也很简单,并实现了您可以在教科书或维基百科中找到的基本方程式。

于 2013-12-18T15:55:50.620 回答