2012-08-05 94 views
0

我想绘制从数据低于设定的频率密度图,其中箱宽度= 10个单位:剧情频密度(X,F)

[f x]=hist(p,1:10:200); bar(x,f/trapz(x,f));

然而sum(10*f)/trapz(x,f)=1.0461。不应该由trapz = 1计算的面积?

enter image description here

`p=[23.7648 
40.5013 
34.7466 
24.8569 
68.2174 
40.8811 
78.1818 
18.6804 
22.3158 
80.4086 
15.0927 
44.1342 
163.6714 
6.4450 
22.9075 
17.5615 
8.8536 
26.3300 
32.6789 
42.4225 
22.3832 
3.0519 
16.6581 
32.9496 
10.3606]` 

回答

1

trapz是积分运算,其经由first-order hold重构信号而sum(10*f)使用zero-order hold。这就是为什么你的比例不是1.欲了解更多信息,你也可以检查出Orders of approximation

+0

据我所知,作为一个正交公式,它是一个近似值,但我注意到,matlab自己的'dfittool'确实比'trapz'有更好的近似值。你建议不要为此使用'trapz'? – HCAI 2012-08-06 08:03:42

+0

当我需要正常化我的直方图时,我使用'sum'。推荐vs不取决于你想要完成的。另外请注意,误差小于5%,这是大多数人的花生 – Rasman 2012-08-06 11:11:01

+0

当然,'Sum'只适用于总和等于1的垃圾箱?也许我应该更好地解释我的问题:matlab在“dfittool”中使用的“trapz”更准确吗? – HCAI 2012-08-06 15:28:48