📄 discriminant.m
字号:
function varargout = Discriminant(varargin)% Two-Category Discriminant Classifier% The classifier is desined for 2-feature case and 1-feature case% % It is also simplified in three different cases by choise of Covariance Matrix % Last Modified by Kirit Patel 04-Dec-2002if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); set(handles.date_time,'String',[date]) set(handles.timetake, 'String', ['Time Reauired to update plot ' sprintf('%4.2f%',0.00) ' seconds']) case1 = {'Case 1: Features are statistically independent', 'Each features have same covariance and Covariance Matrix are diagonal.', 'Samples fall in equal-size hypersperical clusters'}; outcase1 = textwrap(handles.case_text, case1); set(handles.case_text, 'String', outcase1) set(handles.covar12_c1, 'Enable','inactive') set(handles.covar21_c1, 'Enable','inactive') set(handles.covar22_c1, 'Enable','inactive') set(handles.covar11_c2, 'Enable','inactive') set(handles.covar12_c2, 'Enable','inactive') set(handles.covar21_c2, 'Enable','inactive') set(handles.covar22_c2, 'Enable','inactive') set(handles.mus1_c1, 'Value',str2num(get(handles.mue1_c1,'String'))); set(handles.mus2_c1, 'Value',str2num(get(handles.mue2_c1,'String'))); set(handles.mus1_c2, 'Value',str2num(get(handles.mue1_c2,'String'))); set(handles.mus2_c2, 'Value',str2num(get(handles.mue2_c2,'String'))); set(handles.priors_c1,'Value', str2num(get(handles.priore_c1,'String'))); set(handles.priors_c2,'Value', str2num(get(handles.priore_c2,'String'))); guidata(fig, handles); if nargout > 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard catch disp(lasterr); endend%| ABOUT CALLBACKS:%| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism.%|%| Each callback subfunction declaration has the following form:%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)%|%| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback',%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.%|%| H is the callback object's handle (obtained using GCBO).%|%| EVENTDATA is empty, but reserved for future use.%|%| HANDLES is a structure containing handles of components in GUI using%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This%| structure is created at GUI startup using GUIHANDLES and stored in%| the figure's application data using GUIDATA. A copy of the structure%| is passed to each callback. You can store additional information in%| this structure at GUI startup, and you can change the structure%| during callbacks. Call guidata(h, handles) after changing your%| copy to replace the stored original so that subsequent callbacks see%| the updates. Type "help guihandles" and "help guidata" for more%| information.%|%| VARARGIN contains any extra arguments you have passed to the%| callback. Specify the extra arguments by editing the callback%| property in the inspector. By default, GUIDE sets the property to:%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))%| Add any extra arguments after the last argument, before the final%| closing parenthesis.% --------------------------------------------------------------------function varargout = mue1_c1_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.mue1_c1,'String'));if (isreal(val)==1) & (length(val)==1) if val < get(handles.mus1_c1,'Min') set(handles.mue1_c1, 'String', sprintf('%3.1f',get(handles.mus1_c1,'Min'))); elseif val > get(handles.mus1_c1,'Max') set(handles.mue1_c1, 'String', sprintf('%3.1f',get(handles.mus1_c1,'Max'))); else set(handles.mue1_c1, 'String', sprintf('%3.1f',val)); endelse set(handles.mue1_c1,'String',sprintf('%3.1f',get(handles.mus1_c1,'Value')))endset(handles.mus1_c1,'Value',str2num(get(handles.mue1_c1,'String')));% --------------------------------------------------------------------function varargout = mue2_c1_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.mue2_c1,'String'));if isnumeric(val) & length(val) & isreal(val)==1 if val < get(handles.mus2_c1,'Min') set(handles.mue2_c1, 'String', sprintf('%3.1f',get(handles.mus2_c1,'Min'))); elseif val > get(handles.mus2_c1,'Max') set(handles.mue2_c1, 'String', sprintf('%3.1f',get(handles.mus2_c1,'Max'))); else set(handles.mue2_c1, 'String', sprintf('%3.1f',val)); endelse set(handles.mue2_c1,'String',sprintf('%3.1f',get(handles.mus2_c1,'Value')))endset(handles.mus2_c1,'Value',str2num(get(handles.mue2_c1,'String')));% --------------------------------------------------------------------function varargout = mus1_c1_Callback(h, eventdata, handles, varargin)set(handles.mue1_c1,'String', sprintf('%3.1f',get(handles.mus1_c1,'Value')));% --------------------------------------------------------------------function varargout = mus2_c1_Callback(h, eventdata, handles, varargin)set(handles.mue2_c1,'String', sprintf('%3.1f',get(handles.mus2_c1,'Value')));% --------------------------------------------------------------------function varargout = covar11_c1_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar11_c1,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<=0) set(handles.covar11_c1,'String',sprintf('%3.1f',1));elseif val > 10 set(handles.covar11_c1,'String',sprintf('%3.1f',10));else set(handles.covar11_c1,'String',sprintf('%3.1f',val));endif get(handles.disc_case,'Value')==1 set(handles.covar22_c1,'String',get(handles.covar11_c1,'String')); set(handles.covar11_c2,'String',get(handles.covar11_c1,'String')); set(handles.covar22_c2,'String',get(handles.covar11_c1,'String'));endif get(handles.disc_case,'Value')==2 set(handles.covar11_c2,'String',get(handles.covar11_c1,'String'));end% --------------------------------------------------------------------function varargout = covar12_c1_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar12_c1,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<-10) | (val>10) set(handles.covar12_c1,'String',sprintf('%3.1f',str2num(get(handles.covar21_c1,'String'))));else set(handles.covar21_c1,'String',sprintf('%3.1f',val)); set(handles.covar12_c1,'String',sprintf('%3.1f',val));endif get(handles.disc_case,'Value')==2 set(handles.covar12_c2,'String',get(handles.covar12_c1,'String')); set(handles.covar21_c2,'String',get(handles.covar12_c1,'String'));end% --------------------------------------------------------------------function varargout = covar21_c1_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar21_c1,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<-10) | (val>10) set(handles.covar21_c1,'String',sprintf('%3.1f',str2num(get(handles.covar12_c1,'String'))));else set(handles.covar12_c1,'String',sprintf('%3.1f',val)); set(handles.covar21_c1,'String',sprintf('%3.1f',val));endif get(handles.disc_case,'Value')==2 set(handles.covar21_c2,'String',get(handles.covar21_c1,'String')); set(handles.covar12_c2,'String',get(handles.covar21_c1,'String'));end% --------------------------------------------------------------------function varargout = covar22_c1_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar22_c1,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<=0) set(handles.covar22_c1,'String',sprintf('%3.1f',1));elseif val > 10 set(handles.covar22_c1,'String',sprintf('%3.1f',10));else set(handles.covar22_c1,'String',sprintf('%3.1f',val));endif get(handles.disc_case,'Value')==2 set(handles.covar22_c2,'String',get(handles.covar22_c1,'String'));end% --------------------------------------------------------------------function varargout = mue1_c2_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.mue1_c2,'String'));if isnumeric(val) & length(val) & isreal(val)==1 if val < get(handles.mus1_c2,'Min') set(handles.mue1_c2, 'String', sprintf('%3.1f',get(handles.mus1_c2,'Min'))); elseif val > get(handles.mus1_c2,'Max') set(handles.mue1_c2, 'String', sprintf('%3.1f',get(handles.mus1_c2,'Max'))); else set(handles.mue1_c2, 'String', sprintf('%3.1f',val)); endelse set(handles.mue1_c2,'String',sprintf('%3.1f',get(handles.mus1_c2,'Value')))endset(handles.mus1_c2,'Value',str2num(get(handles.mue1_c2,'String')));% --------------------------------------------------------------------function varargout = mue2_c2_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.mue2_c2,'String'));if isnumeric(val) & length(val) & isreal(val)==1 if val < get(handles.mus2_c2,'Min') set(handles.mue2_c2, 'String', sprintf('%3.1f',get(handles.mus2_c2,'Min'))); elseif val > get(handles.mus2_c2,'Max') set(handles.mue2_c2, 'String', sprintf('%3.1f',get(handles.mus2_c2,'Max'))); else set(handles.mue2_c2, 'String', sprintf('%3.1f',val)); endelse set(handles.mue2_c2,'String',sprintf('%3.1f',get(handles.mus2_c2,'Value')))endset(handles.mus2_c2,'Value',str2num(get(handles.mue2_c2,'String')));% --------------------------------------------------------------------function varargout = mus1_c2_Callback(h, eventdata, handles, varargin)set(handles.mue1_c2,'String', sprintf('%3.1f',get(handles.mus1_c2,'Value')));% --------------------------------------------------------------------function varargout = mus2_c2_Callback(h, eventdata, handles, varargin)set(handles.mue2_c2,'String', sprintf('%3.1f',get(handles.mus2_c2,'Value')));% --------------------------------------------------------------------function varargout = covar11_c2_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar11_c2,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<=0) set(handles.covar11_c2,'String',sprintf('%3.1f',1));elseif val > 10 set(handles.covar11_c2,'String',sprintf('%3.1f',10));else set(handles.covar11_c2,'String',sprintf('%3.1f',val));end% --------------------------------------------------------------------function varargout = covar12_c2_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar12_c2,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<-10) | (val>10) set(handles.covar12_c2,'String',sprintf('%3.1f',str2num(get(handles.covar21_c2,'String'))));else set(handles.covar21_c2,'String',sprintf('%3.1f',val)); set(handles.covar12_c2,'String',sprintf('%3.1f',val));end% --------------------------------------------------------------------function varargout = covar21_c2_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar21_c2,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<-10) | (val>10) set(handles.covar21_c2,'String',sprintf('%3.1f',str2num(get(handles.covar12_c2,'String'))));else set(handles.covar12_c2,'String',sprintf('%3.1f',val)); set(handles.covar21_c2,'String',sprintf('%3.1f',val));end% --------------------------------------------------------------------function varargout = covar22_c2_Callback(h, eventdata, handles, varargin)val = str2num(get(handles.covar22_c2,'String'));if (isreal(val)~=1) | (length(val)~=1) | (val<=0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -