www.gusucode.com > 自动提取模糊规则的matlab程序源码 > code/chqgz从数据中抽取规则(9000.m

    function [R,xcan]=chqgz(Datax,x,mf_n)
% this function can get the original rules from data
% Data is the input space restructure maxtri
% x is the original data
% 
lengthx1=size(Datax,1);
lengthx2=size(Datax,2);
cent=zeros(1,lengthx1);
canshu=genparam([x x],mf_n,'gaussmf');  %产生最初隶属函数参数
xcan=canshu(1:mf_n,1:2);                %产生x1最初隶属函数参数 
R=zeros(lengthx1,lengthx2); 
%
% 求每组数据对应的规则
for i=1:lengthx1 
    i
    for j=1:lengthx2
        cent(i,j)=abs(Datax(i,j)-xcan(1,2));
        flag=1;
        for l=1:7
          C(i,j,l)=abs(Datax(i,j)-xcan(l,2));
           if C(i,j,l)<cent(i,j)
               cent(i,j)=C(i,j,l);
               flag=l;                        
           end
           R(i,j)=flag;
       end
     end
end