2011-10-05 329 views
2

怎樣才能使以下cumulative distribution function(CDF)曲線更平滑?使用MATLAB繪製平滑的累積分佈函數

這裏是我的代碼,使用cdfplot

clear all; 
close all; 
y = [0.75862069 0.666666667 0.882352941 0.875 0.736842105 0.566666667 0.703703704 0.6 0 0.730769231 0.714285714 0.625 0.675 0.693877551 0.731707317 0.558823529 0.679245283 0.740740741 0.785714286 0.789473684 0.615384615 0.6 0.739130435 0.576923077 0 0.75]; 
cdfplot(y) 

情節是這樣的:

enter image description here

+2

你試圖找出問題所做的一切? –

+0

yea:data = [1 1 1 4 5]; %#樣本數據 p1 = cdf('Normal',data,0,1); (p1); – ddayan

回答

2
data = [1 2 2 3 4]; 
dsum = sum(data); 
normalized_data = data/dsum; 

cdf = data; 

for i = 1:length(data) 
    cdf(i) = sum(normalized_data(1:i)); 
end 

plot(cdf); 

這是你在找什麼?

+4

看起來你不知道'cumsum' – sellibitze

2
data = [2 1 4 2 3]; 
sdata = sort(data); 
plot(sdata,(0.5:length(sdata))./length(sdata),'-'); 
1

可以使用功能ecdf

[f,x] = ecdf(y); 
plot(x,f); 
0

有一個方法。但我認爲這是一種欺騙行爲。使用它與你自己的責任。 你可以嘗試cdfplot([x,x+a*randn(length(x),1)]).你可以玩參數a,但我建議你使用0.5左右的值。乾杯。