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

📄 nefgui_e.m

📁 模糊神经网络采用matlab编程 o install NEFCON follow these steps: 1. Unpack the tar file NEFCON.TAR into your MA
💻 M
字号:
function nefgui_e(action, p1);   
   
%NEFGUI_E GUI-Tool to manage fuzzy error settings.   
%
% See also NEFGUI_O, NEFGUI, NEFGUI_I and NEFCON.  
   
% Author: Andreas Nuernberger, TU Braunschweig, August 1996; a.nuernberger@tu-bs.de
%         contact: Ludger Merz, DASA-Airbus GmbH, Hamburg; ludger.merz@airbus.de
   
% Globals:    (shared by: nefcon nefgui_e ...)   
% NEFCON_STAT - Status of execution   
% NEFCON_UIH  - Handle to nefgui GUI-Tool   
% NEFCON_RULE - Selected rule generation   
% NEFCON_OPT  - Selected optimization method   
% NEFCON_FERR - Selected error calculation   
% NEFCON_RATE - Selected learning rate   
% NEFCON_IFM  - intial fismatrix (rule learning disabled)   
% NEFCON_EFM  - error fismatrix   
% NEFCON_EFMN - error fismatrix name   
% NEFCON_FIS  - nefcon fismatrix   
global NEFCON_PROT NEFCON_STAT NEFCON_UIH NEFCON_RULE NEFCON_OPT NEFCON_IFM NEFCON_EFM NEFCON_EFMN   
global NEFCON_RATE NEFCON_FERR NEFCON_FIS   
   
   
handle = findobj('Tag', 'NEFCONGUI_E');   
   
if nargin < 1    
    if handle == []   
        action = 'initialize';   
    else   
        action = '';   
    end;   
end;   
   
%create controls   
if strcmp(action, 'initialize') & handle == [],   
    % Information for all objects   
    bckfrmColor=230/255*[1 1 1];   
    frmColor=192/255*[1 1 1];   
    bckColor=230/255*[1 1 1];   
    btnColor=192/255*[1 1 1];   
    popupColor=192/255*[1 1 1];   
    editColor=255/255*[1 1 1];   
    border=6;   
    spacing=8;   
   
    %Calculate Windowsize   
    figPos=get(0,'DefaultFigurePosition');   
    figPos(3) = 0.7 * figPos(3);   
    figPos(4) = 0.4 * figPos(3);   
    maxRight=figPos(3);   
    maxTop=figPos(4);   
   
    % uicontrol sizes   
%    btnWid  = 110;   
%    btnHt   = 23;   
    btnWid = maxRight/4;   
    btnHt  = maxRight/18;   
   
    % calculate normalized units for resizeable window   
    Nborder = border/maxRight;   
    Nspacing= spacing/maxRight;   
    NbtnWid = btnWid/maxRight;   
    NbtnHt  = btnHt/maxTop;   
   
    % userdata   
    localdata = [];   
   
    % open new window   
    h = figure( ...   
        'Name','Error Definition', ...   
        'NumberTitle','off', ...   
    	'Color',bckColor, ...   
	    'Visible','on', ...   
	    'UserData',localdata, ...   
    	'Units','pixels', ...   
	    'DefaultAxesXColor','black', ...   
    	'DefaultAxesYColor','black', ...   
    	'MenuBar','none', ...   
	    'Resize','on', ...   
    	'Nextplot','new', ...   
	    'Position',figPos, ...   
    	'Tag','NEFCONGUI_E' ...   
	    );   
    figPos=get(h,'position');   
   
    % create close button   
    closeb = uicontrol(h, ...   
        'Style', 'push', ...   
        'String', 'Close', ...   
    	'Units','normalized', ...   
        'Position', [1-Nspacing-NbtnWid Nspacing NbtnWid NbtnHt], ...   
        'CallBack', 'nefgui_e(''close'')');   
   
    % create help button   
    closeb = uicontrol(h, ...   
        'Style', 'push', ...   
        'String', 'Help', ...   
    	'Units','normalized', ...   
        'Position', [1-2*(Nspacing+NbtnWid) Nspacing NbtnWid NbtnHt], ...   
        'CallBack', 'hthelp(''nefcon.htm#errordef'')');   
   
   
    % create edit err button   
    editErrb = uicontrol(h, ...   
        'Style', 'push', ...   
        'String', 'Edit Err', ...   
    	'Units','normalized', ...   
        'Position', [Nspacing Nspacing NbtnWid NbtnHt], ...   
        'CallBack', 'nefgui_e(''edit'')');   
%        'Position', [1-3*(Nspacing+NbtnWid) Nspacing NbtnWid NbtnHt], ...   
   
    % The Options frame   
    left    = Nspacing;   
%    bottom  = 3*Nspacing+1*NbtnHt;   
    bottom  = 2*Nspacing + NbtnHt;   
    width   = 1-Nspacing;   
    height  = 1-bottom-Nspacing;   
    right   = left+width;   
    top     = bottom+height;   
   
    statHndl=uicontrol(h, ...   
        'Style','text', ...   
    	'BackgroundColor',bckfrmColor, ...   
	    'HorizontalAlignment','left', ...   
        'Position', [left+Nspacing top-Nspacing-NbtnHt width-2*Nspacing NbtnHt], ...   
    	'Units', 'normalized', ...   
        'String', 'Fuzzy Error will be calculated using...');   
   
    topFrmHndl=uicontrol(h, ...   
        'Style','frame', ...   
       	'Units','normalized', ...   
        'Position', [left bottom+Nspacing width height-2*Nspacing-NbtnHt], ...   
        'BackgroundColor',frmColor);   
   
    ferrH=uicontrol(h, ...   
        'Style','popup', ...   
    	'BackgroundColor',editColor, ...   
        'Position', [left+Nspacing top-3*Nspacing-2*NbtnHt width-2*Nspacing NbtnHt], ...   
    	'Units', 'normalized', ...   
        'String', 'Fuzzy Error (fismatrix)|Use input1 as error|Bounded Error Calculation|External Function (feval)',...   
        'CallBack', 'nefgui_e (''ferr'')', ...   
        'Tag', 'ferr');   
   
    statHndl=uicontrol(h, ...   
        'Style','text', ...   
    	'BackgroundColor',frmColor, ...   
	    'HorizontalAlignment','left', ...   
        'Position', [left+Nspacing top-3*(Nspacing+NbtnHt)-2*Nspacing width/3-2*Nspacing NbtnHt], ...   
    	'Units', 'normalized', ...   
        'String', 'resourcefile:');   
   
    errfismatH=uicontrol(h, ...   
        'Style','edit', ...   
    	'BackgroundColor',editColor, ...   
        'Position', [left+width/3+Nspacing top-3*(Nspacing+NbtnHt)-2*Nspacing width*2/3-2*Nspacing NbtnHt], ...   
    	'Units', 'normalized',...   
        'CallBack', 'nefgui_e (''errfismat'')', ...   
    	'Tag','errfismat');   
   
    % Setting global defaults - check if already set   
    nefdef;   
   
    set(ferrH, 'Value', NEFCON_FERR);   
    set(errfismatH, 'String', NEFCON_EFMN);   
   
elseif strcmp(action, 'close'),   
    % close current nefgui_e   
    set(handle,'visible','off');  
%    close(gcf);   
   
elseif strcmp(action, 'ferr'),   
    hndl=findobj(gcf, 'Tag', 'ferr');   
    if hndl ~= [],   
        if NEFCON_STAT == 0,   
            NEFCON_FERR = get(hndl, 'Value'); 
            NEFCON_EFMN = '';   
            if NEFCON_FERR == 1 
                NEFCON_EFMN = 'ferror.fis';   
            elseif NEFCON_FERR == 4 
                NEFCON_EFMN = 'syserr';   
            else 
                NEFCON_EFMN = '';   
            end 
            hndl=findobj(gcf, 'Tag', 'errfismat');   
            set(hndl, 'String', NEFCON_EFMN);   
        else   
            disp('NEFCON: Could not change error type during execution.');   
            set(hndl, 'Value', NEFCON_FERR);   
        end   
    end   
   
elseif strcmp(action, 'errfismat'),   
    hndl=findobj(gcf, 'Tag', 'errfismat');   
    if hndl ~= [],   
        if NEFCON_STAT == 0,   
            NEFCON_EFMN = get(hndl, 'String');   
        else   
            disp('NEFCON: Could not change error fismatrix during execution.');   
            set(hndl, 'String', NEFCON_EFMN);   
        end   
    end   
   
elseif strcmp(action, 'edit'),   
    if NEFCON_EFMN ~= []
        if NEFCON_FERR == 1   
            % fismatrix   
            fuzzy(NEFCON_EFMN);   
        else
            if find(NEFCON_EFMN=='.')
                fn = NEFCON_EFMN;
            else
                fn = [NEFCON_EFMN '.m'];
            end
            if strcmp(computer,'PCWIN')   
                eval(['!notepad ' fn]);   
            else
                eval(['!vi ' fn]);   
            end
        end   
    end
   
elseif strcmp(action, 'reset'),   
    %clear all;   
    NEFCON_STAT = 0;   
    nefdef;   
    nefgui_e('status');   
    nefgui_e('rulelist');   
    nefgui_e('opt');   
    nefgui_e('rate');   
    nefgui_e('ferr');   
    nefgui_e('inifismat');   
    nefgui_e('errfismat');   
   
elseif strcmp(action, ''),  
    % popup window  
    set(handle,'visible','on');  
    figure(handle);  
else   
    disp(['nefgui_e: illegal action (' action ')']);   
end   
   

⌨️ 快捷键说明

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