mutation.m

来自「用matlab编写的采用遗传算法进行图像分割的一个程序」· M 代码 · 共 21 行

M
21
字号
function [newpop]=mutation(oldpop,stringlength,a,b,pm)
pz=size(oldpop,1);
for i=1:pz
   if(rand<pm)
     mpoint=round(rand*(stringlength-1))+1;
     newpop=oldpop;
     newpop(i,mpoint)=abs(oldpop(i,mpoint)-1);
     sum=0;
     for j=1:stringlength
        sum=sum+newpop(j)*2^(j-1);
     end
    newpop(i,stringlength+1)=sum;%解码   
    x(i)=newpop(i,stringlength+1);
    newpop(i,stringlength+2)=fitness(x,pz,stringlength);
  else 
     newpop=oldpop;
    
  end
end

⌨️ 快捷键说明

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