【问题标题】:Plotting the mean and standard deviation of a given vector?绘制给定向量的均值和标准差?
【发布时间】:2014-05-17 14:59:50
【问题描述】:

我为此进行了高低搜索,似乎找不到任何人以最基本的形式提出这个问题。

我有一个向量x,我已经获取了 mu mean 和 sigma std,我该如何绘制它以便我可以看到钟形曲线形式的数据分布?

我在 MatLab 帮助中遇到的最接近的是 normspec,我想这不是我想要的。

编辑:

感谢您的所有回复。与其留下多个 cmet,我想我会编辑我的原始帖子。

我基本上有我的列向量x,其中填充了(BPM)中的心率数据,所以我想如果你绘制 X 轴,它的范围需要从 0200。到目前为止,只是为了使我的结果更加具体,我一直在为平均值和标准差创建常量(如所指出的那样)。我希望能够像这样可视化这些数据(类似于模糊逻辑工具箱中的gaussmf 函数):

您的一个答案可能是正确的,但我在编辑这篇文章时不确定。抱歉,我对数学方面还不清楚。我正在学习概率和统计课程,但到目前为止,我的源文件只是将标准差称为“价差”。

【问题讨论】:

  • 这并不完全清楚。听起来您可能想使用hist
  • @OliCharlesworth:我同意。该帖子表明 OP 想要绘制均值和标准差,但在查看帖子时,OP 想要检查从正态分布中提取的值的分布。帖子的标题和正文有冲突。
  • 使用hist 命令。 @OliCharlesworth 是正确的。您可以使用hist(x,nbins) 指定您想要多少个垃圾箱。例如,由于您的 BPM 来自 [0,200],也许您可​​以拆分直方图,以便将它们按 20 BPM 间隔进行分箱,因此您需要 10 个分箱。因此,尝试做hist(x,10);
  • 谢谢 :-) 直方图也在我的研究清单上,所以会检查一下。在音频特征提取的上下文中,nbin 是否类似于频率 bin?
  • 是的!正是它。直方图基本上是一个频率计数器。在上面的示例中,您正在做的是收集数据,以便它们属于某些分类。如果我们选择 10 个 bin,这意味着您将有 10 个频率 bin,其中第一个反映了 [0, 19] 之间有多少 BPM,第二个反映了 [20, 39] 之间有多少 BPM,依此类推。您拥有的垃圾箱越多,连续垃圾箱之间的间距就越小。我不知道您的应用程序需要多少个垃圾箱,但可以尝试使用 nbins 参数,看看您会得到什么。你想让我更新我的答案吗?

标签: matlab standard-deviation


【解决方案1】:

使用hist 命令。 @OliCharlesworth 是正确的。您可以使用hist(x,nbins); 指定您想要多少个垃圾箱。

例如,由于您的 BPM 来自 [0,200],也许您可​​以拆分直方图,以便将它们按 20 BPM 间隔进行分箱,因此您需要 10 个分箱。因此,尝试做hist(x, 10);

直方图基本上是一个频率计数器。在上面的示例中,您正在做的是收集数据,以便它们属于某些分类。如果我们选择 10 个 bin,这意味着您将有 10 个频率 bin,其中第一个反映了 [0, 19] 之间有多少 BPM,第二个反映了 [20, 39] 之间有多少 BPM,依此类推。您拥有的垃圾箱越多,连续垃圾箱之间的间距就越小。

我不知道您的应用程序需要多少个 bin,但请尝试使用 nbins 参数,看看您会得到什么。

【讨论】:

    【解决方案2】:

    钟形曲线方程如下:

    f(x, mu, sigma) = (1/(sigma*sqrt(2*pi)))*e^(-(x-mu)^2/(2*sigma^2))
    

    我找不到将其放入更易于阅读的数学方程式的方法,因此如果您有兴趣,请点击以下链接:http://en.wikipedia.org/wiki/Normal_distribution

    您找到的值(mu 和 sigma)是常数。要将其拟合到钟形曲线,您需要模拟曲线。等式中的 x 应该只是要绘制的向量或数组(这取决于您的数据),并且应该只是原始数据的长度。

    希望这是有道理的。

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 2014-08-28
      • 2016-01-14
      • 2021-10-14
      • 2017-08-30
      • 2022-01-23
      • 2016-07-24
      • 2017-04-01
      • 2012-07-17
      相关资源
      最近更新 更多