我想使用 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
我想使用 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
你需要
cdf = cumsum(pdf) * diff(x([1 2]));
这是因为 cdf 是 pdf 的积分。要计算积分,您可以将其近似为黎曼和:对函数值求和 ( cumsum(pdf)
) 并乘以它们沿x轴的间距 ( diff(x([1 2]))
)。