logo资料库

粗糙集理论matlab计算程序.docx

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
%ÂÛÓòU syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32; U=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32]; %¾ö²ßÊôÐÔ¼¯ºÏ X1=[x1 x2 x3 x4 x9 x10 x11 x12]; X2=[x5 x6 x7 x8 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32]; %Ìõ¼þÊôÐÔ¼¯ºÏ Y1=[x1 x2 x3 x4 x5 x6 x7 x8]; Y2=[x9 x10 x11 x12 x13 x14 x15 x16]; Y3=[x17 x18 x19 x20 x21 x22 x23 x24]; Y4=[x25 x26 x27 x28 x29 x30 x31 x32]; Z1=[x1 x2 x3 x4 x7 x8 x9 x10]; Z2=[x5 x6 x11 x12 x13 x14 x31 x32]; Z3=[x15 x16 x17 x18 x19 x20 x21 x22]; Z4=[x23 x24 x25 x26 x27 x28 x29 x30]; X=[X1 X2]; Y=[Y1 Y2 Y3 Y4]; Z=[Z1 Z2 Z3 Z4]; n1=[length(X1) length(X2) 0 0; length(Y1) length(Y2) length(Y3) length(Y4); length(Z1) length(Z2) length(Z3) length(Z4)] length(intersect(X2,Z1)) length(intersect(X2,Z2)) length(intersect(X2,Y1)) length(intersect(X2,Y2)) n2=length(U) %ÐÅÏ¢ìØ for i=1:2 HD1(i)=-(n1(1,i)/length(U))*log2(n1(1,i)/length(U)) end HD=sum(HD1) A1=[length(intersect(X1,Y1)) length(intersect(X1,Y2)) length(intersect(X1,Y3)) length(intersect(X1,Y4)); length(intersect(X2,Y3)) length(intersect(X2,Y4))] A2=[length(intersect(X1,Z1)) length(intersect(X1,Z2)) length(intersect(X1,Z3)) length(intersect(X1,Z4)); length(intersect(X2,Z3)) length(intersect(X2,Z4))] %ÊôÐÔÒÀÀµ¶È B1=[all(ismember(Y1,X1)) all(ismember(Y2,X1)) all(ismember(Y3,X1)) all(ismember(Y4,X1)); all(ismember(Y4,X2));] B2=[all(ismember(Z1,X1)) all(ismember(Z2,X1)) all(ismember(Z3,X1)) all(ismember(Z4,X1)); all(ismember(Z4,X2))] A=[A1(:)';A2(:)'] B=[B1(:)';B2(:)'] C=A.*B SIG11=sum(C(1,:))/n2 SIG12=sum(C(2,:))/n2 %Ìõ¼þìØ for i=1:2 all(ismember(Y1,X2)) all(ismember(Y2,X2)) all(ismember(Y3,X2)) all(ismember(Z1,X2)) all(ismember(Z2,X2)) all(ismember(Z3,X2)) for j=1:4 if A1(i,j)==0
HDC1(i,j)=0 HDC1(i,j)=-A1(i,j)/n2*log2(A1(i,j)/n2/((n1(2,j)/n2))) else end end end HDC1=sum(HDC1) HDC1=sum(HDC1) SIGc1=HD-HDC1 for i=1:2 for j=1:4 if A2(i,j)==0 HDC2(i,j)=0 else HDC2(i,j)=-A2(i,j)/n2*log2(A2(i,j)/n2/((n1(3,j)/n2))) end end end HDC2=sum(HDC2) HDC2=sum(HDC2) SIGc2=HD-HDC2 %¼ÓȨƽ¾ùÊôÐÔÖØÒª¶È w=0.5 SIG1=w*SIG11+(1-w)*SIGc1 SIG2=w*SIG12+(1-w)*SIGc2
分享到:
收藏