fuzzsiyi.m

来自「FISMAT accommodates different arithmetic」· M 代码 · 共 32 行

M
32
字号
function y = fuzzsiyi(s,x)% y = fuzzsiyi(s,x)% % Fuzzyfikation des Eingangs(spalten)vektors x in Zugehoerigkeitswerte % der Dreieckssets in s.% Es wird mittels linearer Interpolation ein exakter Wert geliefert.% y enthaelt fuer jede Eingangsgroesse eine Zeile, welche Zugehoerigkeiten zu allen% Zugehoerigkeitsfunktionen in s enthaelt.% Bsp.: s=[-1 -0.5 0 0.5 1]  (Vektorform nach Siler & Ying)% Die Zahlen bestimmen die Zugehoerigkeit=1 fuer jede Zugeh.fkt. (hier=5).% Die Zugeh.fkt. sind als dreieckfoermig definiert. Die Ueberlappung ist so, dass jeder % "scharfen" Prozessgroesse zwei Zugehoerigkeiten zugehoeren. Die Summe der% beiden Zugehoerigkeiten ist gleich eins. Die Dreiecke muessen nicht in % aequidistanten Abstaenden liegen! Eingangsgroessen ausserhalb des Inter-% valls wird der Wert eins zugewiesen. % Fuzzy Toolbox% Olaf Wolkenhauer, 8-Feb-1994 [m,n]=size(s); % m sollte gleich 1 sein.z=zeros(1,n-1);o=ones(1,n-1);yo=(o.*x-s(1,1:n-1))./diff(s); % Interpolation aller positiven Steigungenyu=o-yo;                       % Interp. aller negativen Steigungenyo=min(o,yo); % Zugehoerigkeiten >1 auf 1 setzen.yo=max(z,yo); % Zugehoerigkeiten <0 auf 0 setzen.yu=min(o,yu); yu=max(z,yu);yu=[yu,1];yo=[1,yo]; % Vektoren haben jetzt wieder n Elemente.y=min(yu,yo);

⌨️ 快捷键说明

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