根据数值获得概率密度pdf和累积密度分布cdf,MATLAB语言

y=randn(1,3000); % 生成1-by-3000的标准正态分布随机数

ymin=min(y);

ymax=max(y);

x=linspace(ymin,ymax,20); %将最大最小区间分成20个等分点(19等分),然后分别计算各个区间的个数

yy=hist(y,x); %计算各个区间的个数

yy=yy/length(y); %计算各个区间样本数所占总样本数的比例(概率)

bar(x,yy) %画出概率密度分布图

s=0;

for i=2:length(x)

s=[s,trapz(x([1:i]),yy([1:i]))]; % 使用trapz模拟积分

end

figure;

plot(x,s,'*-')