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

📄 classcover1103hybrid.m

📁 基于类覆盖算法和粒子群优化的神经网络解决模式分类问题
💻 M
📖 第 1 页 / 共 2 页
字号:
        RateB=0.7;
    end
    if sequence==7
        RateA=0.03;
        RateB=0.5;
    end
    if sequence==8
        RateA=0.045;
        RateB=0.65;
    end
    if sequence==9
        RateA=0.04;
        RateB=0.55;
    end
    if sequence==10
        RateA=0.055;
        RateB=0.7;
    end
    if sequence==11
        RateA=0.045;
        RateB=0.55;
    end
    
    A(5,1)=0;%num of covered points w.r.t a point
    A(6,1)=0;%uncovered points
    coverend=1;
    while coverend>=1
        for i=1:1:NumofClass1
            x=0;
            if A(6,i)==0
                for j=1:1:NumofClass1
                    if A(6,j)==0
                        tempradius=sqrt((A(1,i)-A(1,j))^2+(A(2,i)-A(2,j))^2);
                        if A(4,i)>RateB*MaxRadius
                            A(4,i)=RateB*MaxRadius;
                        end
                        if tempradius<=A(4,i)
                            x=x+1;
                        end
                    end
                end
            A(5,i)=x;    
            end
        end
%找中心点
        var=0;
        position=0;
        for i=1:1:NumofClass1
            if (A(6,i)==0)&(A(5,i)>=RateA*NumofClass1)
                if (var==0)
                    var=1;
                    position=i;
                    y=A(5,i);
                elseif A(5,i)>y
                    position=i;
                    y=A(5,i);
                end
            end
        end
%去除已被覆盖的点
        if position>0
            for i=1:1:NumofClass1
                tempredius=sqrt((A(1,i)-A(1,position))^2+(A(2,i)-A(2,position))^2);
                if tempredius<=A(4,position)
                    A(6,i)=1;   %1 rep. be covered
                end
            end
        end
%画图显示,B(2,x)---radius;(A(1,x),A(2,x))---centra
        if position ==0
            coverend=0;
        else %paint circle 
            %write point and radius to file for statistic
            fprintf(fid2,'%i %f\n',sequence,A(4,position));
            fprintf(fid3,'%f %f %f %i\n',A(1,position),A(2,position),A(4,position),sequence);
            hold on
            for t=A(1,position)-A(4,position):A(4,position)/100:A(1,position)+A(4,position);
                y1=A(2,position)+sqrt(A(4,position)^2-(t-A(1,position))^2);
                y2=A(2,position)-sqrt(A(4,position)^2-(t-A(1,position))^2);
                plot(t,y1);
                plot(t,y2);
            end
            switch sequence
                case 1
                    for i=1:1:NumofClass1    
                        hold on
                        plot(A(1,i),A(2,i),'kd','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 2
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'ks','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'kd','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 3
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'kp','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kd','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 4
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'k^','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'kd','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 5
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'kx','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kd','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 6
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'ko','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'kd','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 7
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'k*','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'kd','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 8
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'k+','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'kd','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 9
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'k.','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'kd','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 10
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'kv','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kd','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'k>','MarkerSize',3);
                    end
                case 11
                    for i=1:1:NumofClass1
                        hold on
                        plot(A(1,i),A(2,i),'k>','MarkerSize',3);
                        plot(A(1,i+100),A(2,i+100),'ks','MarkerSize',3);
                        plot(A(1,i+200),A(2,i+200),'kp','MarkerSize',3);    
                        plot(A(1,i+300),A(2,i+300),'k^','MarkerSize',3);
                        plot(A(1,i+400),A(2,i+400),'kx','MarkerSize',3);
                        plot(A(1,i+500),A(2,i+500),'ko','MarkerSize',3);
                        plot(A(1,i+600),A(2,i+600),'k*','MarkerSize',3);
                        plot(A(1,i+700),A(2,i+700),'k+','MarkerSize',3);
                        plot(A(1,i+800),A(2,i+800),'k.','MarkerSize',3);
                        plot(A(1,i+900),A(2,i+900),'kv','MarkerSize',3);
                        plot(A(1,i+1000),A(2,i+1000),'kd','MarkerSize',3);
                    end
            end%end-switch                    
        end%end-if
    end%end-while
end%end for sequence
fclose(fid2);
fclose(fid3);
return;

⌨️ 快捷键说明

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