www.gusucode.com > Feature Selection Using BBPSO with Mutual Information 工具箱matlab源码 > Feature Selection Using BBPSO with Mutual Information/MIBBPSO/mutation.m

    function neweff2 =mutation(eff20,k,X,fmin,fmax)
[px,py]=size(eff20);
a=0.5;
for(i=1:px)
    eff20(i,k+3)=a*((fmax-eff20(i,k+1))/(fmax-fmin));
end
global importance
for i=1:px
    new(i,:)=eff20(i,1:k);
    for(j=2:k)
        if eff20(i,j)==0
            if rand<(eff20(i,k+3)+(1-exp((-1)*importance(j-1))))
                new(i,j)=1;
            else
                new(i,j)=0;
            end
        else if rand<(eff20(i,k+3)+exp((-1)*importance(j-1)))
                new(i,j)=0;
            else
                new(i,j)=1;
            end
        end
    end
end
nnew=new(1:px,1:k);
neweff2=evaluation(nnew,k,X);