📄 createdata.html
字号:
<span class=comment>%
</span><br> <span class=keyword>if</span> ~strcmpi(<span class=graph>get</span>(hobject,<span class=quotes>'Tag'</span>),<span class=quotes>'point'</span>) & ~strcmpi(<span class=graph>get</span>(hobject,<span class=quotes>'Tag'</span>),<span class=quotes>'ellipse'</span>),
<br>
<br> <span class=comment>% set up saved flag
</span><br> h.saved=0;
<br> <span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);
<br>
<br> <span class=comment>% get class number
</span><br> class=<span class=graph>get</span>(h.puclass,<span class=quotes>'Value'</span>);
<br>
<br> <span class=comment>% set update data set
</span><br> sets.K(class)=sets.K(class)+1;
<br> sets.I(sum(sets.K))=class;
<br>
<br> <span class=keyword>switch</span> h.settype
<br> <span class=label>case</span> <span class=quotes>'finite'</span>
<br> sets.X=[sets.X,[pointer(1,1);pointer(1,2)]];
<br> <span class=graph>line</span>(pointer(1,1),pointer(1,2), ...
<br> <span class=quotes>'LineStyle'</span>,<span class=quotes>'none'</span>, ...
<br> <span class=quotes>'Marker'</span>,<span class=quotes>'.'</span>, ...
<br> <span class=quotes>'Color'</span>,XCOLORS(mod(class-1,MAXCOLOR)+1), ...
<br> <span class=quotes>'MarkerSize'</span>,25, ...
<br> <span class=quotes>'ButtonDownFcn'</span>,<span class=quotes>'createdata('</span><span class=quotes>'click'</span><span class=quotes>',gcf)'</span>,...
<br> <span class=quotes>'EraseMode'</span>,<span class=quotes>'none'</span>,...
<br> <span class=quotes>'Tag'</span>,<span class=quotes>'point'</span>);
<br> <span class=comment>% store data set
</span><br> <span class=graph>set</span>(h.axes1,<span class=quotes>'UserData'</span>,sets);
<br> <span class=label>case</span> <span class=quotes>'gauss'</span>
<br> sets.MI=[sets.MI,[pointer(1,1);pointer(1,2)]];
<br> sets.SIGMA=[sets.SIGMA,eye(2,2)];
<br> <span class=graph>set</span>(h.txmi1,<span class=quotes>'String'</span>,<span class=io>sprintf</span>(<span class=quotes>'MI=[%.2f'</span>,pointer(1,1)));
<br> <span class=graph>set</span>(h.txmi2,<span class=quotes>'String'</span>,<span class=io>sprintf</span>(<span class=quotes>' %.2f]'</span>,pointer(1,2)));
<br>
<br> <span class=comment>% set cov matrix and draw ellipse
</span><br> h.currpoint=size(sets.MI,2);
<br> h.currhandle=0;
<br> <span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);
<br> <span class=graph>set</span>(h.axes1,<span class=quotes>'UserData'</span>,sets);
<br> createdata(<span class=quotes>'setcov'</span>,hfigure,0);
<br> <span class=keyword>end</span>
<br>
<br> <span class=keyword>end</span> <span class=comment>% if ~strcmpi(
</span><br>
<br> <span class=label>case</span> <span class=quotes>'open'</span>
<br> <span class=comment>% == Double click ===
</span><br> <span class=comment>% get info about selected point
</span><br> <span class=keyword>if</span> strcmpi(h.settype,<span class=quotes>'gauss'</span>)==1 & strcmpi(<span class=graph>get</span>(hobject,<span class=quotes>'Tag'</span>),<span class=quotes>'ellipse'</span>),
<br>
<br> <span class=comment>% set selected point as currpoint
</span><br> pixelpos=<span class=graph>get</span>(hobject,<span class=quotes>'UserData'</span>);
<br> K=sum(sets.K);
<br> <span class=keyword>for</span> i=1:K,
<br> <span class=keyword>if</span> pixelpos==sets.MI(:,i),
<br> h.currpoint=i;
<br> h.currhandle=hobject;
<br> sigma=sets.SIGMA(:,(i-1)*2+1:i*2);
<br> mi=sets.MI(:,i);
<br>
<br> <span class=comment>% mi
</span><br> <span class=graph>set</span>(h.txmi1,<span class=quotes>'String'</span>,<span class=io>sprintf</span>(<span class=quotes>'MI=[%.2f'</span>,mi(1)));
<br> <span class=graph>set</span>(h.txmi2,<span class=quotes>'String'</span>,<span class=io>sprintf</span>(<span class=quotes>' %.2f]'</span>,mi(2)));
<br>
<br> <span class=comment>% show cov. matrix
</span><br> <span class=graph>set</span>(h.edxx,<span class=quotes>'String'</span>,sigma(1,1));
<br> <span class=graph>set</span>(h.edxy,<span class=quotes>'String'</span>,sigma(1,2));
<br> <span class=graph>set</span>(h.edyx,<span class=quotes>'String'</span>,sigma(2,1));
<br> <span class=graph>set</span>(h.edyy,<span class=quotes>'String'</span>,sigma(2,2));
<br> <span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);
<br> <span class=jump>break</span>;
<br> <span class=keyword>end</span>
<br> <span class=keyword>end</span>
<br>
<br> <span class=keyword>end</span> <span class=comment>% if ~strcmpi(get(...
</span><br>
<br> <span class=label>case</span> <span class=quotes>'alt'</span>
<br> <span class=comment>% === Right mouse button ===
</span><br> <span class=comment>% erase point
</span><br>
<br> <span class=keyword>if</span> strcmpi(<span class=graph>get</span>(hobject,<span class=quotes>'tag'</span>),<span class=quotes>'point'</span>)==1,
<br>
<br> <span class=comment>% object is point
</span><br> pixelpos=[<span class=graph>get</span>(hobject,<span class=quotes>'XData'</span>);<span class=graph>get</span>(hobject,<span class=quotes>'YData'</span>)];
<br>
<br> K=sum(sets.K);
<br> <span class=keyword>for</span> i=1:K,
<br> pos=sets.X(:,i);
<br>
<br> <span class=keyword>if</span> pixelpos==pos,
<br> <span class=comment>% update data sets
</span><br> sets.K(sets.I(i))=sets.K(sets.I(i))-1;
<br> sets.I=[sets.I(:,1:i-1),sets.I(:,i+1:K)];
<br> sets.X=[sets.X(:,1:i-1),sets.X(:,i+1:K)];
<br> <span class=graph>set</span>(h.axes1,<span class=quotes>'UserData'</span>,sets);
<br>
<br> <span class=comment>% erase point
</span><br> <span class=graph>set</span>(hobject,<span class=quotes>'EraseMode'</span>,<span class=quotes>'normal'</span>);
<br> delete(hobject);
<br>
<br> <span class=comment>% set up saved flag
</span><br> h.saved=0;
<br> <span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);
<br>
<br> <span class=jump>break</span>;
<br> <span class=keyword>end</span> <span class=comment>% if pixelpos
</span><br> <span class=keyword>end</span> <span class=comment>% for
</span><br>
<br> <span class=keyword>elseif</span> strcmpi(<span class=graph>get</span>(hobject,<span class=quotes>'tag'</span>),<span class=quotes>'ellipse'</span>)==1,
<br>
<br> <span class=comment>% object is ellipse
</span><br> pixelpos=<span class=graph>get</span>(hobject,<span class=quotes>'UserData'</span>);
<br>
<br> K=sum(sets.K);
<br> <span class=keyword>for</span> i=1:K,
<br> pos=sets.MI(:,i);
<br>
<br> <span class=keyword>if</span> pixelpos==pos,
<br> <span class=comment>% update data sets
</span><br> sets.K(sets.I(i))=sets.K(sets.I(i))-1;
<br> sets.I=[sets.I(:,1:i-1),sets.I(:,i+1:K)];
<br> sets.MI=[sets.MI(:,1:i-1),sets.MI(:,i+1:K)];
<br> sets.SIGMA=[sets.SIGMA(:,1:(i-1)*2),sets.SIGMA(:,i*2+1:K*2)];
<br> h.currpoint=0;
<br> h.currhandle=0;
<br>
<br> <span class=graph>set</span>(h.axes1,<span class=quotes>'UserData'</span>,sets);
<br>
<br> <span class=comment>% erase point
</span><br> <span class=graph>set</span>(hobject,<span class=quotes>'EraseMode'</span>,<span class=quotes>'normal'</span>);
<br> delete(hobject);
<br>
<br> <span class=comment>% set up saved flag
</span><br> h.saved=0;
<br> <span class=graph>set</span>(hfigure,<span class=quotes>'UserData'</span>,h);
<br>
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -