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

📄 discriminant.m

📁 This Two-Category Classifier Using Discriminant Functions to separeate two classes. The Classifier
💻 M
📖 第 1 页 / 共 2 页
字号:
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 + -