y = gauss(x,s,m)
Y = normpdf(X,mu,sigma)
R = normrnd(mu,sigma)
这三个功能之间的基本区别是什么?
答案 0 :(得分:7)
Y = normpdf(X,mu,sigma)
是具有均值mu
和stdev sigma
的正态分布的概率密度函数。如果您想知道X
点的相对可能性,请使用此选项。
R = normrnd(mu,sigma)
从上面的相同分布中获取随机样本。因此,如果您想根据正态分布模拟某些内容,请使用此功能。
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附带的函数来说可能是多余的。
此外,normpdf
和normrnd
都是Statistics and Machine Learning Toolbox的一部分,因此没有它的用户无法使用它们。但是,从正态分布生成随机数是一项非常常见的任务,因此只有具有核心Matlab的用户才能访问它。因此, 是normrnd
的冗余函数,randn
是核心Matlab的一部分。