disperse.m

来自「工具箱 (粗糙集数据分析工具箱) matla 中使用」· M 代码 · 共 57 行

M
57
字号
function xd=disperse(x,b,n)  % x是要离散的原始数据;b是离散的区间,第一行是第一个条件属性的离散区间 
[p,q]=size(x);              % n是决策属性的数
xx=ones(p,q);
[p1,q1]=size(b);
%下面是离散的过程
for i=1:p
    for j=1:q-n
        a=x(i,j);
        for jj=1:q1
            if a>b(j,jj)
                xx(i,j)=xx(i,j)+1;
            end
        end
    end
end
xx(:,q)=x(:,q);
y=xx;
%yd=sam_del(y);
%下面是对离散的数据的处理
%就是对离散的数据进行归类处理,如果各个条件属性都相同而决策属性不同,则留下出现次数多的数据
for i=1:p
    num1=0;
    num2=0;
    for j=1:p
        if i~=j
            [y1,n1]=equal(y(i,1:q-n),y(j,1:q-n));
            [y2,n2]=equal(y(i,q-n:q),y(n,q-n:q));
            if n1==1&n2==0
                num1=num1+1;
            end
            if n1==1&n2==1
                num2=num2+1;
            end        
        end
    end
        if num2<num1
            y(i,1:q)=0;
        end
    end
    
    nn=0;
    for i=1:p
        if y(i,:)==0
            continue;
        else
            nn=nn+1;
            yy(nn,:)=y(i,:);
        end
    end
    xd=sam_del(yy);
    
        
        
                 
                
            
   

⌨️ 快捷键说明

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