www.gusucode.com > 探地雷达中的波形反演问题源码程序 > 探地雷达中的波形反演问题源码程序/crossover.m

    function [newpop]=crossover(pop,pc)
         [px,py]=size(pop);
         newpop=ones(size(pop));
         for i=1:2:px-1
             if (rand<pc)
                 cpoint=round(mean([rand pc])*py);
                 if cpoint==0
                     cpoint=1;
                 end
                 newpop(i,:)=[pop(i,1:cpoint) pop(i+1,cpoint+1:py)];
                 newpop(i+1,:)=[pop(i+1,1:cpoint) pop(i,cpoint+1:py)];
             else
                 newpop(i,:)=newpop(i,:);
                 newpop(i+1,:)=newpop(i+1,:);
             end
         end
end