Matlab中不同高斯函数之间有什么区别?

时间:2017-06-18 05:49:57

标签: matlab gaussian

  1. y = gauss(x,s,m)
  2. Y = normpdf(X,mu,sigma)
  3. R = normrnd(mu,sigma)
  4. 这三个功能之间的基本区别是什么?

2 个答案:

答案 0 :(得分:7)

Y = normpdf(X,mu,sigma)是具有均值mu和stdev sigma的正态分布的概率密度函数。如果您想知道X点的相对可能性,请使用此选项。

R = normrnd(mu,sigma)从上面的相同分布中获取随机样本。因此,如果您想根据正态分布模拟某些内容,请使用此功能。

乍一看,{p> y = gauss(x,s,m)看起来与normpdf()完全相同。但是有一点点差异:它的计算是

Y = EXP(-(X-M).^2./S.^2)./(sqrt(2*pi).*S)

normpdf()使用

Y = EXP(-(X-M).^2./(2*S.^2))./(sqrt(2*pi).*S)

这意味着从-inf到inf的gauss()的积分是1/sqrt(2)。因此,它不是一个合法的PDF,我不知道哪里可以使用这样的东西。

为了完整起见,我们还必须提到p = normcdf(x,mu,sigma)。这是正常的累积分布函数。它给出了值介于-inf和x之间的概率。

答案 1 :(得分:5)

要添加到Leander good answer的其他一些见解:

在比较功能时,最好查看其源或工具箱。 gauss不是Mathworks编写的函数,因此对于Matlab附带的函数来说可能是多余的。

此外,normpdfnormrnd都是Statistics and Machine Learning Toolbox的一部分,因此没有它的用​​户无法使用它们。但是,从正态分布生成随机数是一项非常常见的任务,因此只有具有核心Matlab的用户才能访问它。因此, normrnd的冗余函数,randn是核心Matlab的一部分。