📄 fc_regular.m
字号:
function r=fc_regular(re,rde,ru,reg)
%if 1 and b then c
%用书上的极大极小法进行解模糊
x0=size(re,2);%e的量化个数
y0=size(rde,2);%de的量化个数
z0=size(ru,2);%u的量化个数
x1=size(re,1);%e的语言变量个数
y1=size(rde,1);%de的语言变量个数
z1=size(ru,1);%u的语言变量个数
for i=1:x0
for j=1:y0
count=1;
for m=1:x1
if(re(m,i)~=0)
test0=minx(re(m,:));
for n=1:y1
if(rde(n,j)~=0)
test1=minx(rde(n,:));
rr(count,:)=ru(reg(m,n),:);
test2=min(test0,test1);
for l=1:z0
if(rr(count,l)>test2)
rr(count,l)=test2;
end
end
count=count+1;
end
end
end
end
for ii=1:z0
rrr(1,ii)=max(rr(:,ii));
end
weight=-(z0-1)/2:1:(z0-1)/2;
r(i,j)=sum((rrr.*weight))/sum(rrr);
%对控制表的值进行整定
test1=r(i,j)-weight;
test2=abs(test1);
test3=min(test2);
test4=r(i,j);
if(test4-test3==fix(r(i,j)))
r(i,j)=test4-test3;
elseif(test4+test3==fix(r(i,j)+1))
r(i,j)=test4+test3;
% elseif(test4-test3==fix(r(i,j))-1)
% r(i,j)=fix(r(i,j))-1;
%elseif(test4+test3==fix(r(i,j)))
% r(i,j)=fix(r(i,j));
end
if(r(i,j)<0)
r(i,j)=fix(r(i,j))-1;
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -