首页 > 解决方案 > 归一化直方图的值总和不等于 1

问题描述

我正在尝试使用(0 - 0.2)范围内的数据绘制直方图。当不包括 bin 限制时,标准化工作正常。

但是,当包含 bin 限制时,如代码所示,总和不再等于 1。

x=data1.data(:,2);
h=histogram(x,50,'BinLimits',[0.0234375 0.2], 'FaceColor', 'none', 'EdgeColor','green','Normalization', 'probability');
S=sum(h.Values)

有没有办法在指定的 bin 范围内进行标准化?

标签: matlabhistogramprobabilitynormalization

解决方案


这是预期的行为;根据文档,当使用“概率”归一化方案时,“条形高度之和小于或等于 1”。

要解决您的问题,您可以histogram()直接应用于所需的数据子集:

x=data1.data(:,2);
x=x(x>=0.0234375 & x<=0.2);
h=histogram(x,50, 'FaceColor', 'none', 'EdgeColor','green','Normalization', 'probability');
S=sum(h.Values)

推荐阅读