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

📄 demo_mmgauss.html

📁 很好的matlab模式识别工具箱
💻 HTML
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Enable'</span>,<span class=quotes>'off'</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>'on'</span>);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;#&nbsp;of&nbsp;iter&nbsp;and&nbsp;epsilon</span><br>&nbsp;&nbsp;&nbsp;iter=str2num(<span class=graph>get</span>(h.editer,<span class=quotes>'String'</span>));<br>&nbsp;&nbsp;&nbsp;epsilon=str2num(<span class=graph>get</span>(h.edeps,<span class=quotes>'String'</span>));<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;set&nbsp;stop&nbsp;button</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.btstop,<span class=quotes>'UserData'</span>,0);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;start&nbsp;point&nbsp;for&nbsp;plot</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t==0&nbsp;&&nbsp;iter&nbsp;&gt;&nbsp;1,<br><span class=comment>%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[mi,sigma,solution,minp,topp]=mmln(sets.X,epsilon,1,0);</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.eps&nbsp;=&nbsp;epsilon;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.tmax&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=mmgauss(sets.X,options);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mi&nbsp;=&nbsp;model.Mean;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sigma&nbsp;=&nbsp;model.Cov;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minp&nbsp;=&nbsp;model.lower_bound(<span class=keyword>end</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topp&nbsp;=&nbsp;model.upper_bound(<span class=keyword>end</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;solution&nbsp;=&nbsp;model.exitflag;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.time=[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot2.minps=[minp];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.topps=[topp];<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;Play&nbsp;-&nbsp;adaptation&nbsp;process</span><br>&nbsp;&nbsp;&nbsp;play=1;<br>&nbsp;&nbsp;&nbsp;<span class=keyword>while</span>&nbsp;play==1&nbsp;&&nbsp;<span class=graph>get</span>(h.btstop,<span class=quotes>'UserData'</span>)==0,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;perform&nbsp;one&nbsp;learning&nbsp;step</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[mi,sigma,solution,minp,topp,h.ellipse.N,h.ellipse.t]=...</span><br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mmln(sets.X,epsilon,iter,h.ellipse.t,h.ellipse.N);</span><br><br>&nbsp;&nbsp;&nbsp;options.tmax&nbsp;=&nbsp;iter+h.ellipse.t;<br>&nbsp;&nbsp;&nbsp;options.eps&nbsp;=&nbsp;epsilon;<br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t&nbsp;==&nbsp;0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=mmgauss(sets.X,options);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.t&nbsp;=&nbsp;h.ellipse.t;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.Alpha&nbsp;=&nbsp;h.ellipse.N;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=mmgauss(sets.X,options,init_model);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;mi=&nbsp;model.Mean;<br>&nbsp;&nbsp;&nbsp;sigma&nbsp;=&nbsp;model.Cov;<br>&nbsp;&nbsp;&nbsp;solution&nbsp;=&nbsp;model.exitflag;<br>&nbsp;&nbsp;&nbsp;minp&nbsp;=&nbsp;model.lower_bound(<span class=keyword>end</span>);<br>&nbsp;&nbsp;&nbsp;topp&nbsp;=&nbsp;model.upper_bound(<span class=keyword>end</span>);<br>&nbsp;&nbsp;&nbsp;h.ellipse.N&nbsp;=&nbsp;model.Alpha;<br>&nbsp;&nbsp;&nbsp;h.ellipse.t&nbsp;=&nbsp;model.t;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=<span class=io>sprintf</span>(<span class=quotes>'iteration&nbsp;t=%d&nbsp;'</span>,h.ellipse.t);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;solution==1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=strcat(text,<span class=quotes>',&nbsp;algorithm&nbsp;has&nbsp;converged.'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;add&nbsp;new&nbsp;value&nbsp;to&nbsp;plot</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.time=[h.plot1.time,h.ellipse.t];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot2.minps=[h.plot2.minps,minp];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.topps=[h.plot1.topps,topp];<br><br>&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t&nbsp;&gt;&nbsp;h.plot1.axist,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.axist=h.ellipse.t+iter*AXIST_ADD;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.aprob,<span class=quotes>'XLim'</span>,[1&nbsp;h.plot1.axist]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.plot2.handler,<span class=quotes>'XData'</span>,h.plot1.time,<span class=quotes>'YData'</span>,h.plot2.minps,<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.plot1.handler,<span class=quotes>'XData'</span>,h.plot1.time,<span class=quotes>'YData'</span>,h.plot1.topps,<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;erase&nbsp;old&nbsp;ellipse,&nbsp;compute&nbsp;and&nbsp;plot&nbsp;new&nbsp;one</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.ellipse.center,<span class=quotes>'XData'</span>,mi(1),<span class=quotes>'YData'</span>,mi(2),<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r=sqrt(max(mahalan(sets.X,mi,sigma)));<br><span class=comment>%%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[x,y]=ellipse(inv(sigma),50,r,mi);</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[x,y]=ellips(mi,inv(sigma),r,40);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.ellipse.handler,<span class=quotes>'XData'</span>,x,<span class=quotes>'YData'</span>,y,<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;comment</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;<span class=comment>%&nbsp;store&nbsp;data</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;flush&nbsp;it&nbsp;on&nbsp;desktop</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawnow;<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;disable&nbsp;button</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>([h.edeps,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.txeps,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><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;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.aset,<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,<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&nbsp;and&nbsp;epsilon</span><br>&nbsp;&nbsp;&nbsp;iter=str2num(<span class=graph>get</span>(h.editer,<span class=quotes>'String'</span>));<br>&nbsp;&nbsp;&nbsp;epsilon=str2num(<span class=graph>get</span>(h.edeps,<span class=quotes>'String'</span>));<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;start&nbsp;point&nbsp;for&nbsp;plot</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t==0&nbsp;&&nbsp;iter&nbsp;&gt;&nbsp;1,<br><span class=comment>%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[mi,sigma,solution,minp,topp]=mmln(sets.X,epsilon,1,0);</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.eps&nbsp;=&nbsp;epsilon;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.tmax&nbsp;=&nbsp;1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=mmgauss(sets.X,options);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mi&nbsp;=&nbsp;model.Mean;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sigma&nbsp;=&nbsp;model.Cov;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minp&nbsp;=&nbsp;model.lower_bound(<span class=keyword>end</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topp&nbsp;=&nbsp;model.upper_bound(<span class=keyword>end</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;solution&nbsp;=&nbsp;model.exitflag;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.time=[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot2.minps=[minp];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.topps=[topp];<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;perform&nbsp;one&nbsp;learning&nbsp;step</span><br><br><span class=comment>%%&nbsp;&nbsp;&nbsp;[mi,sigma,solution,minp,topp,h.ellipse.N,h.ellipse.t]=...</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mmln(sets.X,epsilon,iter,h.ellipse.t,h.ellipse.N);</span><br><br>&nbsp;&nbsp;&nbsp;options.tmax&nbsp;=&nbsp;iter+h.ellipse.t;<br>&nbsp;&nbsp;&nbsp;options.eps&nbsp;=&nbsp;epsilon;<br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.t&nbsp;==&nbsp;0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=mmgauss(sets.X,options);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.t&nbsp;=&nbsp;h.ellipse.t;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_model.Alpha&nbsp;=&nbsp;h.ellipse.N;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model=mmgauss(sets.X,options,init_model);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;mi=&nbsp;model.Mean;<br>&nbsp;&nbsp;&nbsp;sigma&nbsp;=&nbsp;model.Cov;<br>&nbsp;&nbsp;&nbsp;solution&nbsp;=&nbsp;model.exitflag;<br>&nbsp;&nbsp;&nbsp;minp&nbsp;=&nbsp;model.lower_bound(<span class=keyword>end</span>);<br>

⌨️ 快捷键说明

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