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

📄 demo_linclass.html

📁 很好的matlab模式识别工具箱
💻 HTML
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;h.<span class=graph>line</span>.t=0;<br>&nbsp;&nbsp;&nbsp;h.<span class=graph>line</span>.theta=0;<br>&nbsp;&nbsp;&nbsp;h.<span class=graph>line</span>.alpha=[0;0];<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;h.stepcnt=0;<br><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;h.<span class=graph>line</span>.handler==-1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;create&nbsp;line</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>axes</span>(h.axes1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.<span class=graph>line</span>.handler=...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>line</span>(<span class=quotes>'EraseMode'</span>,<span class=quotes>'xor'</span>,<span class=quotes>'Color'</span>,<span class=quotes>'k'</span>,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>,<span class=quotes>'Parent'</span>,h.axes1);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h.badpoint.handler=<span class=graph>line</span>(<span class=quotes>'EraseMode'</span>,<span class=quotes>'xor'</span>,<span class=quotes>'Color'</span>,<span class=quotes>'k'</span>,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Parent'</span>,h.axes1,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Marker'</span>,<span class=quotes>'o'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'MarkerSize'</span>,WRONGPOINT_SIZE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawnow;<br>&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;change&nbsp;parameters&nbsp;of&nbsp;line</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.<span class=graph>line</span>.handler,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.badpoint.handler,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span>&nbsp;<span class=comment>%&nbsp;if&nbsp;hline==-1</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;set&nbsp;up&nbsp;handlers&nbsp;and&nbsp;flush&nbsp;queue&nbsp;with&nbsp;graph.&nbsp;objects</span><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;create&nbsp;comment</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;isempty(sets)==0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;consoletext=<span class=io>sprintf</span>(<span class=quotes>'Step&nbsp;t=0\nNo&nbsp;separation&nbsp;line'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;titletext=<span class=io>sprintf</span>(<span class=quotes>'Data&nbsp;file:&nbsp;%s,&nbsp;%d&nbsp;vectors'</span>,file.name,sum(sets.K));<br>&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;consoletext=<span class=io>sprintf</span>([<span class=quotes>'No&nbsp;data&nbsp;loaded.\nPress&nbsp;Load&nbsp;data&nbsp;button.\n'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Load&nbsp;sample&nbsp;data&nbsp;from&nbsp;../toolboxroot/data/binary_separable'</span>]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;titletext=<span class=quotes>''</span>;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos=<span class=graph>get</span>(h.axes1,<span class=quotes>'Position'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fsize=min(pos(3),pos(4))/10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setaxis(h.axes1,[-1&nbsp;1&nbsp;-1&nbsp;1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>axis</span>([-1&nbsp;1&nbsp;-1&nbsp;1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=eval>builtin</span>(<span class=quotes>'text'</span>,0,0,<span class=quotes>'Press&nbsp;'</span><span class=quotes>'Load&nbsp;data'</span><span class=quotes>'&nbsp;button.'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'HorizontalAlignment'</span>,<span class=quotes>'center'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'FontUnits'</span>,<span class=quotes>'normalized'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Clipping'</span>,<span class=quotes>'on'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'FontSize'</span>,fsize);<br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;show&nbsp;comment</span><br>&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.console,<span class=quotes>'String'</span>,consoletext&nbsp;);<br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;print&nbsp;title</span><br>&nbsp;&nbsp;&nbsp;pos=<span class=graph>get</span>(h.axes1,<span class=quotes>'Position'</span>);<br>&nbsp;&nbsp;&nbsp;fsize=(1-pos(2)-pos(4))*1;<br>&nbsp;&nbsp;&nbsp;title(titletext,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Parent'</span>,h.axes1,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'VerticalAlignment'</span>,<span class=quotes>'bottom'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'HorizontalAlignment'</span>,<span class=quotes>'left'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'FontUnits'</span>,<span class=quotes>'normalized'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Units'</span>,<span class=quotes>'normalized'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Position'</span>,[0&nbsp;1&nbsp;0],...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'FontSize'</span>,fsize);<br><br><br><span class=label>case</span>&nbsp;<span class=quotes>'drawline'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;Draw&nbsp;separation&nbsp;line&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;<span class=comment>%&nbsp;get&nbsp;handlers</span><br><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;get&nbsp;new&nbsp;line&nbsp;position&nbsp;from&nbsp;input&nbsp;arguments</span><br>&nbsp;&nbsp;&nbsp;theta=<span class=stack>varargin</span>{1};<br>&nbsp;&nbsp;&nbsp;alpha=<span class=stack>varargin</span>{2};<br><br>&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;mod(h.stepcnt,2)==1&nbsp;&&nbsp;h.<span class=graph>line</span>.t&nbsp;&gt;0,&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.badpoint.handler,<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'XData'</span>,alpha(1),<span class=quotes>'YData'</span>,alpha(2));<br>&nbsp;&nbsp;&nbsp;<span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.badpoint.handler,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>);<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;Cut&nbsp;off&nbsp;line&nbsp;along&nbsp;axes</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[x1,y1,x2,y2,in]=cliplin1(alpha,theta,getaxis(h.axes1));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;erase&nbsp;old&nbsp;line</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.<span class=graph>line</span>.handler,<span class=quotes>'Visible'</span>,<span class=quotes>'off'</span>);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;draw&nbsp;new&nbsp;line&nbsp;if&nbsp;is&nbsp;in&nbsp;the&nbsp;axes</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>if</span>&nbsp;in==1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=graph>set</span>(h.<span class=graph>line</span>.handler,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'XData'</span>,[x1&nbsp;x2],...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'YData'</span>,[y1&nbsp;y2],...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'LineWidth'</span>,LINE_WIDTH,...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=quotes>'Visible'</span>,<span class=quotes>'on'</span>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br>&nbsp;&nbsp;&nbsp;<span class=keyword>end</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;flush&nbsp;draw&nbsp;queue</span><br>&nbsp;&nbsp;&nbsp;drawnow;<br>&nbsp;<br><br><span class=label>case</span>&nbsp;<span class=quotes>'info'</span><br>&nbsp;&nbsp;&nbsp;<span class=comment>%&nbsp;==&nbsp;Invokes&nbsp;standard&nbsp;Matlab`s&nbsp;info&nbsp;box&nbsp;==========================</span><br>&nbsp;&nbsp;&nbsp;helpwin(mfilename);<br><span class=keyword>end</span><br><br><br><br><span class=comment>%========================================</span><br><span class=defun_kw>function</span>&nbsp;<span class=defun_out>[text]</span>=<span class=defun_name>makeinfo</span>(<span class=defun_in>t,alpha,theta,solution</span>)<br><span class=comment>%&nbsp;assembles&nbsp;text&nbsp;description&nbsp;about&nbsp;current&nbsp;solution&nbsp;state</span><br><br><span class=keyword>if</span>&nbsp;solution==1,<br>&nbsp;&nbsp;&nbsp;txline{1}=<span class=io>sprintf</span>(<span class=quotes>'Solution&nbsp;was&nbsp;found&nbsp;after&nbsp;t=%d&nbsp;step(s).'</span>,t);<br><span class=keyword>else</span><br>&nbsp;&nbsp;&nbsp;txline{1}=<span class=io>sprintf</span>(<span class=quotes>'Step&nbsp;t=%d'</span>,t);<br><span class=keyword>end</span><br>txline{2}=<span class=io>sprintf</span>(<span class=quotes>'Linear&nbsp;decision&nbsp;function:'</span>);<br>txline{3}=<span class=io>sprintf</span>(<span class=quotes>'%f&nbsp;x_1&nbsp;+&nbsp;%f&nbsp;x_2&nbsp;+&nbsp;%f&nbsp;=&nbsp;0'</span>,alpha(1),alpha(2),-theta);<br><br>text=<span class=quotes>''</span>;<br><span class=keyword>for</span>&nbsp;i=1:3,<br>&nbsp;&nbsp;&nbsp;text=strvcat(text,txline{i});<br><span class=keyword>end</span><br><br><span class=jump>return</span>;<br><br><br><span class=comment>%===========================================</span><br><span class=defun_kw>function</span>&nbsp;<span class=defun_out>[alpha,theta,solution,tplus1]</span>=<span class=defun_name>exec</span>(<span class=defun_in>hfigure</span>);<br><br>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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br><span class=keyword>if</span>&nbsp;h.<span class=graph>line</span>.handler==-1,<br>&nbsp;&nbsp;&nbsp;<span class=jump>return</span>;<br><span class=keyword>end</span><br><br><span class=comment>%&nbsp;get&nbsp;sets</span><br>sets=<span class=graph>get</span>(h.axes1,<span class=quotes>'UserData'</span>);<br><br><span class=comment>%&nbsp;no&nbsp;data&nbsp;set&nbsp;loaded</span><br><span class=keyword>if</span>&nbsp;isempty(sets)==1,<br>&nbsp;&nbsp;&nbsp;<span class=jump>return</span>;<br><span class=keyword>end</span><br><br><span class=comment>%&nbsp;get&nbsp;parameters</span><br>t=h.<span class=graph>line</span>.t;<br>alpha=h.<span class=graph>line</span>.alpha;<br>theta=h.<span class=graph>line</span>.theta;<br><br>iter=max(1,round(str2num(<span class=graph>get</span>(h.editer,<span class=quotes>'String'</span>))));<br>epsil=str

⌨️ 快捷键说明

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