我想用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
答案 0 :(得分:0)
你需要
cdf = cumsum(pdf) * diff(x([1 2]));
这是因为cdf是pdf的积分。要计算积分,请将其近似为Riemann sum:求和函数值(cumsum(pdf)
)并乘以它们沿 x 轴的分离(diff(x([1 2]))
)