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