【问题标题】:Gaussian fit to plot, plotted using bar(x,y)高斯拟合绘图,使用 bar(x,y) 绘制
【发布时间】:2013-06-21 11:21:17
【问题描述】:

我使用bar(x,y) 从一组数据 x 和 y 中绘制了一个正态分布,我知道这是一个正态分布。

现在,我想:

  1. 在图中绘制拟合到条形图的正态分布曲线(或高斯)。

  2. 得到方程,这样我就可以计算最大点和半峰宽。

我一直在查看histfit,但它对我来说并不适用(就像hist 不适用于绘制数据一样,因为我已经知道 x 和 y,我想?)。谁能帮帮我?

【问题讨论】:

  • 为什么histfit 不适合你?
  • 可能是因为我不知道如何使用它,即使我已经阅读了描述。我的数据有点像 x=1、1.2、1.4、1.6、1.8,y 是 x 的每个值的计数,例如y=0, 2, 6, 2, 0
  • histfit() 适用于原始数据,但您已经将其分箱。你有原始数据吗?
  • 我的数据来自一个实验,我知道它会产生正态分布。我知道 x 和 y 值。

标签: matlab histogram gaussian normal-distribution bar-chart


【解决方案1】:

一个技巧,但是 NOT 恢复原始原始数据(因此拟合也受到分箱引入的近似值的影响),是使用运行长度算法解码您的 x ,然后在该数据上运行 histfit()

% data from your previous question
x = [0 0.0278 0.0556 0.0833 0.1111 0.1389 0.1667 0.1945 0.2222];
y = [1 3 10 13 28 53 66 91 137];

% histfit 
histfit(rude(y,x),9,'normal')

您可以在FEX: rude() 上找到游程编码/解码功能。

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    相关资源
    最近更新 更多