CDF示例代码:

cdf.m

function [xTime,yPercentage]=cdf(initValue,step,endValue,sample); 
xTime=[];
yPercentage=[];
totalNum=length(sample);
for i=initValue:step:endValue
    temp=length(find(sample<=i))/totalNum;
    xTime=[xTime,i];
    yPercentage=[yPercentage,temp];
end

cdf_app.m

clear;
initValue=0;
step=0.1;
sample1=[0.7,1.2,1.5,2.0,1.3,1.7,2.2,2.5,3.6];
sample2=[0.8,1.1,1.4,2.1,1.2,1.8,2.1,2.4,3.7,4.2,5.4];
endValue1=ceil(max(sample1));
endValue2=ceil(max(sample2));

endValue=max(endValue1,endValue2);

[xTime1,yPercentage1]=cdf(initValue,step,endValue,sample1);
[xTime2,yPercentage2]=cdf(initValue,step,endValue,sample2);

plot(xTime1,yPercentage1,'r');
hold on 
plot(xTime2,yPercentage2,'g');

ylabel('F(x)')
xlabel('Example(exp)')
legend('曲线1','曲线2');
title('Title');

运行效果:

Matlab绘制累积分布函数(CDF)_第1张图片


实验数据处理的一些方式:在进行仿真或者测试时得到的数据往往以Log的形式与其它提示信息混在一起输出和记录下来,因此需要从Log中提取需要的数据。一种方式是可以通过脚本程序处理Log文件提取数据,如使用Perl语言;还有就是结合其它工具‘如一个Log.txt文件,使用Notpad++编辑器中编辑->替换功能中的正则表达式将无用的信息剔除’

Matlab绘制累积分布函数(CDF)_第2张图片

对于一列数据如果想变成一行除去回车换行的数组,可以使用Matlab中数组的转置功能,在工作区新建一个变量如ans,然后打开将数据粘贴进去,在命令行下运行“ans'”,再从变量中拷贝出转置后的一行数据即可。