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 + -
显示快捷键?