2014-07-10 165 views
1

概率假設我們有下面的代碼生成柱狀圖

>> B=xlsread('data_generations1','A1','g8:g301'); 
>> [pxx,f]=periodogram(B,[],[],100); 
>> [peaks,location]=findpeaks(pxx); 
>> length(peaks) 

ans = 

    88 

>> hist(peaks,40) 
>> [pxx,f]=periodogram(B,[],[],100); 
>> pxn=pxx./sum(pxx); 
>> [peaks,location]=findpeaks(pxn); 
>> hist(peaks,40) 
>> 

,我們有以下圖片

enter image description here

我想生成該直方圖的概率在MATLAB所以所有這些那筆概率應該等於1,但我不知道該怎麼辦,所以請提前幫助我,謝謝

編輯:012以下指令後,我有以下圖片

enter image description here

回答

1

如果你不知道下襯分佈,也許是功能ksdensity(需要統計工具箱)是有用的:

x = [randn(3000,1); 15+randn(3000,1)]; 
figure; hist(x,40) 

enter image description here

[f,xi] = ksdensity(x); 
figure; plot(xi,f); 

enter image description here

+0

我會繪製結果,並請求我知道什麼類型的分配可以嗎? –

+0

是什麼類型的分佈?我已經上傳圖片 –

+0

我不知道你的數據分佈類型,但ksdensity不需要這些信息。如果你知道分佈,可能的是[histfit](http://www.mathworks.es/es/help/stats/histfit.html#inputarg_dist)是更好的選擇。 –

2

你必須標準化,這樣總的概率總和爲1。

通常意味着對直方圖進行求和或者在函數連續時進行積分,然後進行除法。

+0

peaks./sum(峯)這樣? –

+0

@datodatuashvili - 是的 – rayryeng

+0

但如何確定分佈的類型? –