Matlab 用超高斯函数绘制直方图

Matlab 用超高斯函数绘制直方图,matlab,statistics,Matlab,Statistics,我是MATLAB新手,我有一组数据需要绘制在直方图上。此外,根据我样本的估计标准偏差和平均值,我需要将这些参数叠加到图形上。最后,我想绘制垂直线,指示平均值和+/-1标准偏差。最好的方法是什么?我曾尝试使用histfit功能,但在图中尝试添加标准偏差的垂直条(工具->数据统计)时,“std”值与std(数据)计算的值不同(我想知道原因)。有人知道这样做的方法吗 谢谢 我使用行功能: % This outputs a histogram with lines at the mean, %

我是MATLAB新手,我有一组数据需要绘制在直方图上。此外,根据我样本的估计标准偏差和平均值,我需要将这些参数叠加到图形上。最后,我想绘制垂直线,指示平均值和+/-1标准偏差。最好的方法是什么?我曾尝试使用
histfit
功能,但在图中尝试添加标准偏差的垂直条(工具->数据统计)时,“std”值与
std(数据)
计算的值不同(我想知道原因)。有人知道这样做的方法吗


谢谢

我使用
功能:

% This outputs a histogram with lines at the mean, 
%    and +/- 1 standard deviation levels. 
%    It does not normalize the data 
%    nor apply a normal Gaussian bell curve over it.

figure(1)
[Y,X] = hist(DATA,n);
sigma = std(DATA);
xbar = mean(DATA);
bar(X,Y)
y = ylim;
line([1 1]*(xbar-sigma),y)
line([1 1]*xbar,y)
line([1 1]*(xbar+sigma),y)

我从未使用过
histfit
函数,但我怀疑它正在对直方图进行正态分布的最小二乘型拟合。这将导致与使用
std
计算的标准偏差不同的标准偏差,除非您的数据集有无限多个数据点,并且它确实是正态分布的

样本的标准偏差表示数据与其平均值的偏差;基本上有两个主要选项来显示高斯分布的数据:1)绘制直方图,样本的偏差可以视为xx轴上的距离,因此不需要垂直误差条,或者2)您可以将分布的平均值绘制为一个点,并根据其标准偏差添加一个垂直误差条……为了获得帮助,您可以更清楚地了解您想要/需要做什么吗?@siluaty我想绘制一个直方图。我不是说我想画误差条;相反,我希望在x轴上有一条垂直线,指示平均值的位置和与平均值的一个标准偏差。只看了
histfit
手册页面,它没有完全说明它在做什么,只是正态分布是一个拟合,所以它几乎肯定是某种优化拟合。在这种情况下,只需使用
line
函数和
ylim
(无参数调用时返回当前y限制)绘制垂直线。