gusucode.com > 利用遗传算法进行图像分割matlab源码程序 > segment_ga/cross_2d1.m

    function [c10,c11]=cross_2d1(s_code10,s_code11,k)
   
   %交叉算子
  
   if k <= 50                                 %交叉概率取0.8,0.6
       pc=0.8; 
   else
       pc=0.6; 
   end
   
   
   population=20;
   
   %(1,2)/(3,4)/(5,6)进行交叉运算,(7,8)/(9,10)复制
   
   ww0=s_code10;
   ww1=s_code11;
   
   for i=1:(pc*population/2)
       r0=abs(round(rand(1)*10)-3);
       r1=abs(round(rand(1)*10)-3);
       for j=(r0+1):8
           temp0=ww0(2*i-1,j);
           ww0(2*i-1,j)=ww0(2*i,j);
           ww0(2*i,j)=temp0; 
       end
       for j=(r1+1):8
           temp1=ww1(2*i-1,j);
           ww1(2*i-1,j)=ww1(2*i,j);
           ww1(2*i,j)=temp1; 
       end
   end
   
   c10=ww0;
   c11=ww1;