classcover517.m

来自「基于类覆盖算法和粒子群优化的神经网络解决模式分类问题」· M 代码 · 共 436 行 · 第 1/2 页

M
436
字号
                        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 + =
减小字号Ctrl + -
显示快捷键?