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

📄 demo_mmgauss.html

📁 很好的matlab模式识别工具箱
💻 HTML
📖 第 1 页 / 共 5 页
字号:
&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><br>&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;<span class=keyword>if</span>&nbsp;solution==1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=strcat(text,<span class=quotes>',solution&nbsp;was&nbsp;found.'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&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;h.plot1.time=[h.plot1.time,h.ellipse.t];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot2.minps=[h.plot2.minps,minp];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.plot1.topps=[h.plot1.topps,topp];<br><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.plot1.axist,<br>&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;<span class=graph>set</span>(h.aprob,<span class=quotes>'XLim'</span>,[1&nbsp;h.plot1.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.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;<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;<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;<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;r=sqrt(max(mahalan(sets.X,mi,sigma)));<br><span class=comment>%%%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[x,y]=ellipse(inv(sigma),50,r,mi);</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[x,y]=ellips(mi,inv(sigma),r,40);<br>&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;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;comment</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.txsteps,<span class=quotes>'String'</span>,text);<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><br><span class=label>case</span>&nbsp;<span class=quotes>'redraw'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;Redraw&nbsp;contents&nbsp;of&nbsp;axes&nbsp;====================================</span><br><br>&nbsp;&nbsp;&nbsp;h=<span class=graph>get</span>(hfigure,<span class=quotes>'UserData'</span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;uicontrol&nbsp;handlers</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;sets&nbsp;with&nbsp;points</span><br>&nbsp;&nbsp;&nbsp;sets=<span class=graph>get</span>(h.aset,<span class=quotes>'UserData'</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;clears&nbsp;axes</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>axes</span>(h.aset);<br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(<span class=graph>get</span>(h.aset,<span class=quotes>'Children'</span>),<span class=quotes>'EraseMode'</span>,<span class=quotes>'normal'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=comment>%%%&nbsp;&nbsp;&nbsp;cla;</span><br>&nbsp;&nbsp;&nbsp;clrchild(h.aset);<br>&nbsp;&nbsp;&nbsp;h.ellipse.handler=<span class=graph>plot</span>([0],[0],...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Parent'</span>,h.aset,<span class=quotes>'LineWidth'</span>,LINE_WIDTH,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'EraseMode'</span>,<span class=quotes>'xor'</span>,<span class=quotes>'Color'</span>,<span class=quotes>'r'</span>,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>);<br>&nbsp;&nbsp;&nbsp;h.ellipse.center=<span class=graph>line</span>(0,0,<span class=quotes>'Marker'</span>,<span class=quotes>'+'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'EraseMode'</span>,<span class=quotes>'xor'</span>,<span class=quotes>'Color'</span>,<span class=quotes>'r'</span>,<span class=quotes>'MarkerSize'</span>,CENTERSIZE,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>);<br><br>&nbsp;&nbsp;&nbsp;win=cmpwin(min(sets.X<span class=quotes>'),max(sets.X'</span>),BORDER,BORDER);<br><span class=comment>%%%&nbsp;&nbsp;&nbsp;axis(win);</span><br>&nbsp;&nbsp;&nbsp;setaxis(h.aset,win);<br>&nbsp;&nbsp;&nbsp;<span class=graph>axes</span>(h.aset);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;plot&nbsp;mixture</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;pplot(sets.X,sets.I);</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;ppoints(sets.X,sets.I);</span><br>&nbsp;&nbsp;&nbsp;ppatterns(sets.X);<br><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);<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;appropriate&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;path&nbsp;to&nbsp;directory</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;wres=what('minimax');</span><br><span class=comment>%%&nbsp;&nbsp;&nbsp;cd(wres.path);</span><br><br>&nbsp;&nbsp;&nbsp;[name,path]=uigetfile(<span class=quotes>'*.mat'</span>,<span class=quotes>'Open&nbsp;file'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;name~=0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.pathname=strcat(path,name);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.path=path;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.name=name;<br><span class=comment>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;checkdat(file.pathname,DATA_IDENT,2,[0])==1,</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;check2ddata(file.pathname),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.btload,<span class=quotes>'UserData'</span>,file);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;demo_mmgauss(<span class=quotes>'loadsets'</span>,hfigure);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errordlg(<span class=quotes>'This&nbsp;file&nbsp;does&nbsp;not&nbsp;contain&nbsp;required&nbsp;data.'</span>,<span class=quotes>'Bad&nbsp;file'</span>,<span class=quotes>'modal'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br><br><span class=label>case</span>&nbsp;<span class=quotes>'loadsets'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;Load&nbsp;sets&nbsp;==================================================================</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;Get&nbsp;file&nbsp;name&nbsp;from&nbsp;the&nbsp;pop&nbsp;up&nbsp;menu&nbsp;according&nbsp;to&nbsp;menu&nbsp;pointer.</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;Get&nbsp;file&nbsp;name&nbsp;with&nbsp;sets</span><br>&nbsp;&nbsp;&nbsp;file=<span class=graph>get</span>(h.btload,<span class=quotes>'UserData'</span>);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;Load&nbsp;sets</span><br>&nbsp;&nbsp;&nbsp;sets=load(file.pathname);<br>&nbsp;&nbsp;&nbsp;sets.I&nbsp;=&nbsp;sets.y;<br>&nbsp;&nbsp;&nbsp;sets.K&nbsp;=&nbsp;size(sets.X,2);<br>&nbsp;&nbsp;&nbsp;sets.N&nbsp;=&nbsp;2;<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;store&nbsp;loaded&nbsp;sets</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.aset,<span class=quotes>'UserData'</span>,sets);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;call&nbsp;reset</span><br>&nbsp;&nbsp;&nbsp;demo_mmgauss(<span class=quotes>'reset'</span>,hfigure);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;call&nbsp;redraw</span><br>&nbsp;&nbsp;&nbsp;demo_mmgauss(<span class=quotes>'redraw'</span>,hfigure);<br><br>&nbsp;&nbsp;&nbsp;drawnow;<br><br><br><span class=label>case</span>&nbsp;<span class=quotes>'reset'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;Reset&nbsp;adaptation&nbsp;process,&nbsp;set&nbsp;up&nbsp;t=0&nbsp;================</span><br><br>&nbsp;&nbsp;&nbsp;h=<span class=graph>get</span>(hfigure,<span class=quotes>'UserData'</span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;handlers</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;file</span><br>&nbsp;&nbsp;&nbsp;file=<span class=graph>get</span>(h.btload,<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;zeroes&nbsp;parameters&nbsp;of&nbsp;the&nbsp;separation&nbsp;line</span><br>&nbsp;&nbsp;&nbsp;h.ellipse.mi=[];<br>&nbsp;&nbsp;&nbsp;h.ellipse.sigma=[];<br>&nbsp;&nbsp;&nbsp;h.ellipse.t=0;<br>&nbsp;&nbsp;&nbsp;h.ellipse.N=[];<br>&nbsp;&nbsp;&nbsp;h.plot1.topps=[];<br>&nbsp;&nbsp;&nbsp;h.plot2.minps=[];<br>&nbsp;&nbsp;&nbsp;h.plot1.time=[];<br>&nbsp;&nbsp;&nbsp;h.plot1.axist=0;<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;comment</span><br>&nbsp;&nbsp;&nbsp;text=<span class=io>sprintf</span>(<span class=quotes>'iteration&nbsp;t=0&nbsp;'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.txsteps,<span class=quotes>'String'</span>,text);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;hide&nbsp;ellipse</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.ellipse.handler==-1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.ellipse.handler=<span class=graph>plot</span>([0],[0],...<br>

⌨️ 快捷键说明

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