⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prob_analysis.m

📁 matlab从入门到精通第6章书后源码对初学者很有帮助
💻 M
字号:
% prob_analysis.m
% 从t分布中得到随机数据
x=[trnd(20,1,50) trnd(10,1,100)+5];
% 设置混合概率密度函数
pdf_norm_mix=@(x,p,mu1,mu2,sigma1,sigma2) ...
    p*normpdf(x,mu1,sigma1)+(1-p)*normpdf(x,mu2,sigma2);
% 设置参数数值
pStart=0.5;
muStart=quantile(x,[0.25 0.75]);
sigmaStart=sqrt(var(x)-0.25*diff(muStart).^2);
start=[pStart muStart sigmaStart sigmaStart];
% 设置参数的上下限
lb=[0 -inf -inf 0   0];
ub=[1  inf  inf inf inf];
% 设置求解属性
options=statset('MaxIter',300,'MaxFunEvals',600);
paramEsts=mle(x,'pdf',pdf_norm_mix,'start',start, ...
    'lower',lb,'upper',ub,'options',options);
% 绘制基础数据的直方图
bins=-2.5:0.5:7.5;
h=bar(bins,histc(x,bins)/(length(x)*0.5),'histc');
set(h,'FaceColor',[0.9 0.9 0.9]);
xgrid=linspace(1.1*min(x),1.1*max(x),200);
% 绘制概率密度图形
pdfgrid=pdf_norm_mix(xgrid,paramEsts(1),paramEsts(2), ...
    paramEsts(3),paramEsts(4),paramEsts(5));
hold on;
plot(xgrid,pdfgrid,'-');
hold off;
xlabel('x');
ylabel('prob density');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -