为什么我的代码生成大于1的累积分布函数(CDF)?

时间:2014-03-18 06:44:24

标签: matlab probability probability-density

我想用MATLAB绘制一组值Z的累积分布函数(CDF)。当我使用以下代码时,CDF不会介于0和1之间!如果你能帮助我,我将不胜感激。

function plot_cdf(Z)    
numberbin=100;
[n,x] =hist(Z,numberbin);
pdf=n/sum(n(:))/diff(x(1:2));
cdf = cumsum(pdf);
plot(cdf)    
end

1 个答案:

答案 0 :(得分:0)

你需要

cdf = cumsum(pdf) * diff(x([1 2]));

这是因为cdf是pdf的积分。要计算积分,请将其近似为Riemann sum:求和函数值(cumsum(pdf))并乘以它们沿 x 轴的分离(diff(x([1 2]))

相关问题