【发布时间】:2016-07-26 15:15:22
【问题描述】:
我需要计算函数 1/2-x 的概率密度,其中 x 是 0 到 1 之间随机生成的数字。
我的代码如下所示:
n=10^6;
b=10^2;
x=(1./(2-(rand(1,n))));
a=histfit(x,b,'kernel'); % Requires Statistics and Machine Learning Toolbox
xlim([0.5 1.0])
我得到了一个不错的图表,如下所示:
显然,这样做有几个问题:
MATLAB 绘制的拟合与我的直方图不同,因为它也计入函数
[0.5 1]范围之外的空白区域。这导致朝向边缘的扭曲拟合。 (你看不到所说空白的原因是因为我在那里输入了一个 xlim)我不知道如何将 Y 轴上的每个值除以 10^6,这将给出我的概率密度。
提前致谢。
【问题讨论】:
-
但是
kernel方法对您的数据进行了 100 个窗口平均,这就是为什么它是为连续数据设计的...我认为您无法避免这种行为,除非您扩展您的数据和丢弃直方图的第一个和最后一个 bin... -
这就是我的想法,但是我该如何扩展数据呢?我没有必须使用内核,所以如果有更好的选择,我想知道。其他人给出的曲线根本不适合。
标签: matlab plot graph histogram