2012-08-05 122 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