nefinit.m

来自「模糊神经网络采用matlab编程 o install NEFCON follow」· M 代码 · 共 61 行

M
61
字号
function [fismat] = nefinit(name, nofin, mfin, mfTypeIn, IntIn, mfout, mfTypeOut, IntOut, mode);  
  
%NEFINIT  Creates default fismatrix 'name' with nofin inputs and one output,  
%         each with mfin/mfout membership functions of type mfTypeIN/Out. 
%         The interval is defined by IntIn(i) and IntOut.
%         mode == 1: create all possible rules (Nefcon original learn algor.) 
%
%         For example: 
%  
%            fismat = NEFINIT('test', 2, 3, 'trimf', [[-1 1];[-1 1]], 5, 'trimf', [-2, 2], 0);
%            dispmfs(fismat);
%  
%         See also NEFCON and MFCREATE. 
  
% Author: Andreas Nuernberger, TU Braunschweig, August 1996; a.nuernberger@tu-bs.de
%         contact: Ludger Merz, DASA-Airbus GmbH, Hamburg; ludger.merz@airbus.de


global NEFCON_C NEFCON_FIS 
 
% inputs  
if NEFCON_FIS == [] 
    fismat = newfis(name);  
    for i=1:nofin,  
        InLabel = ['input' int2str(i)];  
        fismat = mfcreate(fismat, 'input', InLabel, mfin, mfTypeIn, IntIn(i,:));  
    end  
  
    % one output  
    fismat = mfcreate(fismat, 'output', 'output', mfout, mfTypeOut, IntOut); 
else 
    fismat = NEFCON_FIS;  
end 
 
% create all rules 
if mode == 1 & getfis(fismat, 'numRules') == 0 
    rulelist = []; 
    rule = ones(1,nofin+3); 
    c = nofin; 
    while c > 0 
        for o = 1:mfout 
            rule(1,nofin+1) = o; 
            rulelist = [rulelist; rule]; 
        end 
        c = nofin; 
        rule(1,c) = rule(1,c) + 1; 
        while rule(1,c) > mfin 
            rule(1,c) = 1; 
            c = c - 1; 
            if c == 0  
                break; 
            else 
                rule(1,c) = rule(1,c) + 1; 
            end 
        end 
    end 
    fismat = addrule(fismat, rulelist);  
    NEFCON_C = zeros(1,size(rulelist,1)); 
end 
  

⌨️ 快捷键说明

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