matlab拟合gamma分布,使用matlab拟合Gamma分布
任務描述: 有一批數據,需要將其histogram擬合成Gamma分布,histogram分20個bin,從0到100。結果如下圖所示:
實現步驟:
1. 裝載數據進來,數據文件是data.for.hist.txt,文件結構是一列無header的數據,共43個數據。
>> data=load(‘data.for.hist.txt’)
data是43×1的矢量。
2. 打開distribution fitting tool
>> dfittool
選擇Display type為Density(PDF)。點擊Data…,彈出Data對話框。
在此對話框內,設置Data為 ‘data’矢量,Censoring和Frequency為 none。設置data set name為dataset,然后點擊 Create Data Set。
點擊Set Bin Rules,設置Bin width為5。其余不變,OK確認關閉Set Bin Rules。這時,我們將data的histogram設置為每個bin長度為5。在不同的應用里,bin根據具體情況調整。關閉Data對話框。
3. Gamma擬合
點擊New Fit…,在New Fit對話框里選擇Data為dataset,Distribution為Gamma,點擊Apply進行擬合。點擊Close關閉New Fit對話框。
此時,看到下圖的效果:
我們需要修改它的X域,使之匹配我們的histogram的X最大值100。點擊Tools菜單下的Axes Limit Control,將X Lower Limit和X Upper Limit更改為 0和100。
4. 導出成figure
使用File菜單下的Print to Figure導出成figure。對figure進行必要修改。
>>figure(1)? (注,如果已經打開多個figure窗口,導出的figure序號可能不是1而是其它數字,注意figure窗口標題上的Figure n里的n)
>>legend hide
>>xlabel ‘1/32 degree, mm/day’
>>ylabel ‘Frequency’
此時效果如下,
5. 修改figure格式
設置figure為Tools-> edit plot狀態,打開View->Property Editor。
將histogram的plot type從line改成Area,配置合適的face color和edge color。
將x軸的范圍X Limits設置為0 to 100。
這時,histogram壓著擬合曲線,選擇擬合曲線,右鍵Cut后,再Paste進來,可以將擬合曲線帶到最上面。
6. 修改數據
注意到目前為止,Y軸仍是Density。我們需要將Y坐標修改為Frequency(或者count)。Count=Density x bin width x data count,這里bin width是5,data count是43。因此,我們需要對Ydata乘以5×43=215。
選擇擬合曲線,
>>ydata=get(gco,’YData’)
>>ydata_215 = ydata*215
>>set(gco,’YDATA’,ydata_215)
選擇histogram,
>>set(gco,’YDATA’,get(gco,’YDATA’)*215)
修改xlim和ylim
>>ylim([0 10])
>>xlim([0 100])
將figure還原為非編輯狀態。Tools->Edit Plot,并關閉Property editor。
以上步驟中數次修改xlim和ylim,并不是每次都需要,這里僅是為了演示需要。
7. 保存圖形
>>print -dpng ‘histogram_dist.png’
在figure對話框的File-> Save As…保存為MATLAB Figure(.fig),以后可以通過File->Open…打開。
結論
本文演示了如何使用Matlab對數據的histogram使用Gamma分布進行擬合。介紹了matlab的常用命令,Distribution Fitting Tool,figure的格式化編輯功能,對figure對像數據的修改等。也介紹了比如如何調整figure里對像的z-order等實用技巧。
總結
以上是生活随笔為你收集整理的matlab拟合gamma分布,使用matlab拟合Gamma分布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker-compose实战——Dj
- 下一篇: matlab人脸追踪,求大神帮助我这个菜