📄 nefinit.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -