概述
统计数据的时候,经常需要把数据的直方图和概率密度函数叠加。用matlab编程完成这项功能的时候,有一些技巧需要掌握。下面从理论上说明编程的技巧,并举例。
对于一个样本容量为n的数据集,假定在做直方图时,分割的小区间的长度是 d。于是在第i个区间上的频率可以表示为:
另一方面,如果密度函数为f(x),则此区间上的概率可以用密度函数表示:
我们知道,概率可以用频率近似表示,于是有:
也就是说,频率要先除以被分割后的小区间的长度,然后做出的直方图才能与密度函数图像叠加。
例:做出下列数据的直方图,并叠加正态分布密度函数图像:
data=[459 362 624 542 509 584 433 748 815 505 ... 612 452 434 982 640 742 565 706 593 680 ... 926 653 164 487 734 608 428 1153 593 844 ... 527 552 513 781 474 388 824 538 862 659 ... 775 859 755 49 697 515 628 954 771 609 ... 402 960 885 610 292 837 473 677 358 638 ... 699 634 555 570 84 416 606 1062 484 120 ... 447 654 564 339 280 246 687 539 790 581 ... 621 724 531 512 577 496 468 499 544 645 ... 764 558 378 765 666 763 217 715 310 851];
u=mean(data);v=std(data);%计算期望方差h=max(data)-min(data); %计算极差%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下做频率图%%%%%%%d=h/10; %将数据范围等分成十个区间,计算小区间的长度[n,x]=hist(data,10);%计算每个小区间内的频数及区间中点值f=n/length(data);%计算频率f1=f/d;%频率除以分割区间的长度bar(x,f1)%画出频率的柱状图hold on %%%%%%%%%%%%%%%%%%%%%%%%%%以下做密度函数图像%%%%%x1=min(data):0.1:max(data);y=normpdf(x1,u,v);plot(x1,y,'r','LineWidth',5)%叠加正态分布密度函数
最后
以上就是兴奋睫毛膏为你收集整理的matlab计算直方图函数,概率密度函数与直方图叠加技巧—基于matlab的全部内容,希望文章能够帮你解决matlab计算直方图函数,概率密度函数与直方图叠加技巧—基于matlab所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复