【问题标题】:What are the differences between different gaussian functions in Matlab?Matlab中不同的高斯函数有什么区别?
【发布时间】:2019-04-25 23:34:08
【问题描述】:
  1. y = gauss(x,s,m)
  2. Y = normpdf(X,mu,sigma)
  3. R = normrnd(mu,sigma)

这三个功能的基本区别是什么?

【问题讨论】:

  • 只是为了让事情更混乱,图像处理工具箱还有fspecial('gaussian',[1,sz],sigma) (documentation)。

标签: matlab gaussian


【解决方案1】:

Y = normpdf(X,mu,sigma) 是正态分布的概率密度函数,平均值为mu,标准差为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)

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

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

【讨论】:

    【解决方案2】:

    要添加到Leander good answer 的更多见解:

    比较函数时,最好查看它们的源代码或工具箱。 gauss 不是 Mathworks 写的函数,所以对于 Matlab 自带的函数可能是多余的。

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

    【讨论】:

      猜你喜欢
      • 2013-12-02
      • 2016-08-04
      • 2018-04-28
      • 2017-11-25
      • 1970-01-01
      • 2017-06-08
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多