⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pass.asv

📁 关于MATLAB对属性约简的程序。适合初学者
💻 ASV
字号:
function [A]=Pass()
clc;
clear;
C=[1 0 2 1 0
   0 0 1 2 1
   2 0 2 2 2
   0 0 2 2 2
   1 1 2 1 0];
[m,n]=size(C);
U=['a','b','c','d','e'];
q=1;
for i=1:m-1                                                                                                                                                                                                                                                                                                                                                                                                                           
    for j=i+1:m 
        String=[];
        for p=1:n
            if(C(i,p)==C(j,p))
                ;
            else
                String=strcat(U(p),String);
            end
        end
        String
        Infor(q).a=String;
        q=q+1;
    end
end
Infor.a;
q;%总共可以产生的字符串总数,它是 m-1+m-2....1;的和
%进行转化
W=inf.*ones(q-1,n);
for i=1:q-1
    String=Infor(i).a;
     if(length(String)>1)
        for j=1:length(String)
            b=My_code(String(j));
            W(i,b+1)=b;
        end
     else
         b=My_code(String);
         W(i,b+1)=b;
     end

end
W;
A=W
[m,n]=size(A);
for i=1:m-1
    for j=i+1:m
        y1=0;
        y2=0;
        z=0;
        x=0;
        if ((intersect(A(i,:),A(j,:)))|(length(intersect(A(i,:),A(j,:))))>1)%The problem is 
            for a=1:n
                if(A(i,a)==inf)
                   ;
                else
                   y1=y1+1;
                end
                if(A(j,a)==inf)
                    ;
                else
                   y2=y2+1;
                end
            end
           Q=A(i,:)-A(j,:);
           for a=1:n
               if(Q(:,a)==inf)
                   z=1;
               elseif((Q(:,a)==-inf))
                   x=1;
               elseif(((Q(:,a))==NaN)|(Q(:,a))==0)
                     ;
               else
                  ;
               end
           end       
             if((y1<y2)&(((z==1)&(x==0))|((z==0)&(x==1))))
                   A(j,:)=A(i,:);
             elseif((y1>y2)&(((z==1)&(x==0))|((z==0)&(x==1))))
                   A(i,:)=A(j,:);
                 ;
             end
        else
                ;
        end
    end
end
A
C=A(1,:);
[m,n]=size(A);
        for i=2:m;
            v=0;
           [p,n]=size(C);
          for j=1:p;
              y1=num2str(A(i,:));
              y2=num2str(C(j,:));
              if(strcmp(y1,y2))
                   v=0;
              else
                   v=v+1;      
              end
              if(v==p)
                  C=[C;A(i,:)];
              else
                  ;
              end
          end
        end
    C
    [m,n]=size(C);
    for i=1:m
        v=0;
        for j=1:n
            if(C(i,j)~=inf)
                v=v+1;
               String=My_decode(C(i,j));
           
                v=v+1;
             if((v>1))  
             W=strcat('+',W);
             W=strcat(S{j,2},W);
             else
             W=strcat(S{j,2},W);   
             end
            else
                ;
            end
                

⌨️ 快捷键说明

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