2011-10-05 590 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左右的值。干杯。