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

📄 demo_emgmm.html

📁 很好的matlab模式识别工具箱
💻 HTML
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawnow;<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span>&nbsp;<span class=comment>%&nbsp;of&nbsp;while</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;dissable&nbsp;button</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>([h.editer,h.btstep,h.btclose,h.btplay,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.btreset,h.btinfo,h.btload,h.btcreat,h.txiter],...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Enable'</span>,<span class=quotes>'on'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;enable&nbsp;stop&nbsp;button</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.btstop,<span class=quotes>'Enable'</span>,<span class=quotes>'off'</span>);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;copy&nbsp;the&nbsp;solution&nbsp;to&nbsp;global&nbsp;variables&nbsp;to&nbsp;be&nbsp;visible&nbsp;outside&nbsp;demo_emgmm</span><br>&nbsp;&nbsp;&nbsp;UNSU_MI&nbsp;=&nbsp;h.ellipse.mi;<br>&nbsp;&nbsp;&nbsp;UNSU_SIGMA&nbsp;=&nbsp;h.ellipse.sigma;<br>&nbsp;&nbsp;&nbsp;UNSU_PK&nbsp;=&nbsp;h.ellipse.Pk;<br>&nbsp;&nbsp;&nbsp;UNSU_solution&nbsp;=&nbsp;h.ellipse.solution;<br>&nbsp;&nbsp;&nbsp;UNSU_t&nbsp;=&nbsp;h.ellipse.t;<br><br><span class=label>case</span>&nbsp;<span class=quotes>'step'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;One&nbsp;step&nbsp;of&nbsp;learning&nbsp;===========================================
</span><br>&nbsp;&nbsp;&nbsp;h=<span class=graph>get</span>(hfigure,<span class=quotes>'UserData'</span>);
<br>
<br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;data&nbsp;set
</span><br>&nbsp;&nbsp;&nbsp;sets=<span class=graph>get</span>(h.axes1,<span class=quotes>'UserData'</span>);
<br>
<br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;are&nbsp;data&nbsp;sets&nbsp;loaded&nbsp;?
</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;isempty(sets)==1&nbsp;|&nbsp;h.ellipse.solution==1,
<br><span class=comment>%%text=sprintf('No&nbsp;action&nbsp;performed.&nbsp;No&nbsp;data&nbsp;to&nbsp;work&nbsp;on.&nbsp;Load&nbsp;or&nbsp;create&nbsp;it!');</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set(h.console,'String',text);
</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set(h.txsteps,'String',text);
</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=jump>return</span>;
<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span>
<br>
<br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;#&nbsp;of&nbsp;iter
</span><br>&nbsp;&nbsp;&nbsp;iter=str2num(<span class=graph>get</span>(h.editer,<span class=quotes>'String'</span>));
<br>
<br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;#&nbsp;of&nbsp;classes</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t==0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.classes=str2num(<span class=graph>get</span>(h.edclasses,<span class=quotes>'String'</span>));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.features=<span class=graph>get</span>(h.pufeatures,<span class=quotes>'Value'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>([h.xbrandom,h.edclasses,h.txclasses,h.pufeatures,h.txfeatures],<span class=quotes>'Enable'</span>,<span class=quotes>'off'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;random&nbsp;init&nbsp;yes&nbsp;or&nbsp;no</span><br>&nbsp;&nbsp;&nbsp;randinit=<span class=graph>get</span>(h.xbrandom,<span class=quotes>'Value'</span>);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;perform&nbsp;one&nbsp;learning&nbsp;step</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;if&nbsp;h.ellipse.features==2,&nbsp;&nbsp;&nbsp;%&nbsp;correlated</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[h.ellipse.mi,h.ellipse.sigma,h.ellipse.Pk,eI,h.ellipse.solution,...</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.t]=unsund(sets.X,h.ellipse.classes,iter,randinit,...</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.t,h.ellipse.mi,h.ellipse.sigma,h.ellipse.Pk);</span><br><span class=comment>%&nbsp;&nbsp;else&nbsp;%&nbsp;independent
</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.rand&nbsp;=&nbsp;randinit;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>switch</span>&nbsp;3-h.ellipse.features,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=label>case</span>&nbsp;1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.cov_type&nbsp;=&nbsp;<span class=quotes>'full'</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=label>case</span>&nbsp;2,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.cov_type&nbsp;=&nbsp;<span class=quotes>'diag'</span>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.cov_type&nbsp;=&nbsp;3-h.ellipse.features;
</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.ncomp=h.ellipse.classes;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.tmax&nbsp;=&nbsp;iter+h.ellipse.t;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t&nbsp;&gt;=&nbsp;1,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.logL&nbsp;=&nbsp;h.ellipse.logL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.Alpha&nbsp;=&nbsp;h.ellipse.Alpha;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.t&nbsp;=&nbsp;h.ellipse.t;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.Mean&nbsp;=&nbsp;h.ellipse.mi;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.Cov&nbsp;=&nbsp;reshape(h.ellipse.sigma,2,2,size(h.ellipse.mi,2));
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.Prior&nbsp;=&nbsp;h.ellipse.Pk;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=emgmm(sets.X,options,init_model);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=emgmm(sets.X,options);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.mi&nbsp;=&nbsp;model.Mean;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.sigma&nbsp;=&nbsp;reshape(&nbsp;model.Cov,2,2*size(model.Mean,2));
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.Pk&nbsp;=&nbsp;model.Prior;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[tmp,eI]=max(model.Alpha);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.solution&nbsp;=&nbsp;model.exitflag;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.t&nbsp;=&nbsp;model.t;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.Alpha&nbsp;=&nbsp;model.Alpha;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.logL&nbsp;=&nbsp;model.logL(<span class=keyword>end</span>);
<br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[h.ellipse.mi,h.ellipse.sigma,h.ellipse.Pk,eI,h.ellipse.solution,...</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.t]=unsuni(sets.X,h.ellipse.classes,iter,randinit,...</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.t,h.ellipse.mi,h.ellipse.sigma,h.ellipse.Pk);
</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;h.ellipse</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;end</span><br><br>&nbsp;&nbsp;&nbsp;text=<span class=io>sprintf</span>(<span class=quotes>'step&nbsp;number&nbsp;t=%d&nbsp;'</span>,h.ellipse.t);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.solution==1,<br><span class=comment>%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=strvcat(text,'Solution&nbsp;is&nbsp;found.');</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=[text&nbsp;<span class=quotes>',EM&nbsp;has&nbsp;converged.'</span>];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.txsteps,<span class=quotes>'String'</span>,text);<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.txsteps,<span class=quotes>'String'</span>,text);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val=&nbsp;mln(sets.X,h.ellipse.mi,h.ellipse.sigma,h.ellipse.Pk);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=<span class=io>sprintf</span>(<span class=quotes>'Log-likelihood,&nbsp;logL(t)&nbsp;=&nbsp;%f'</span>,val);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.title2,<span class=quotes>'String'</span>,text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.graph1.time=[h.graph1.time,h.ellipse.t];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.graph1.loglik=[h.graph1.loglik,val];<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ylimit=<span class=graph>get</span>(h.axes2,<span class=quotes>'YLim'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;ylimit(2)&nbsp;&lt;&nbsp;val,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.axes2,<span class=quotes>'YLim'</span>,[ylimit(1)&nbsp;val+AXISY_ADD]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;is&nbsp;axis&nbsp;to&nbsp;be&nbsp;changed&nbsp;?</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t&nbsp;&gt;&nbsp;h.graph1.axist,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.graph1.axist=h.ellipse.t+iter*AXIST_ADD;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.axes2,<span class=quotes>'XLim'</span>,[1&nbsp;h.graph1.axist]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.graph1.handler,<span class=quotes>'XData'</span>,h.graph1.time,<span class=quotes>'YData'</span>,h.graph1.loglik,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.handler==-1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>axes</span>(h.axes1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[h.ellipse.handler,h.center]=...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pnmix(sets.X,h.ellipse.mi,h.ellipse.sigma,eI,h.ellipse.handler,h.center);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;comment</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;set(h.console,'String',text);</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;flush&nbsp;it&nbsp;on&nbsp;desktop
</span><br>&nbsp;&nbsp;&nbsp;drawnow;<br><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;copy&nbsp;the&nbsp;solution&nbsp;to&nbsp;global&nbsp;variables&nbsp;to&nbsp;be&nbsp;visible&nbsp;outside&nbsp;demo_emgmm
</span><br>&nbsp;&nbsp;&nbsp;UNSU_MI&nbsp;=&nbsp;h.ellipse.mi;
<br>&nbsp;&nbsp;&nbsp;UNSU_SIGMA&nbsp;=&nbsp;h.ellipse.sigma;
<br>&nbsp;&nbsp;&nbsp;UNSU_PK&nbsp;=&nbsp;h.ellipse.Pk;
<br>&nbsp;&nbsp;&nbsp;UNSU_solution&nbsp;=&nbsp;h.ellipse.solution;
<br>&nbsp;&nbsp;&nbsp;UNSU_t&nbsp;=&nbsp;h.ellipse.t;
<br><br><br><span class=label>case</span>&nbsp;<span class=quotes>'getfile'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;Invoke&nbsp;standard&nbsp;open&nbsp;file&nbsp;dialog&nbsp;====================================</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;Opens&nbsp;file&nbsp;and&nbsp;checks&nbsp;if&nbsp;contains&nbsp;apropriate&nbsp;data,&nbsp;if&nbsp;yes&nbsp;than&nbsp;loads&nbsp;data.</span><br><br>&nbsp;&nbsp;&nbsp;h=<span class=graph>get</span>(hfigure,<span class=quotes>'UserData'</span>);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;change&nbsp;pa

⌨️ 快捷键说明

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