plus.m

来自「一些用matlab编写的经典遗传算法算例。可以用于解决许多优化问题」· M 代码 · 共 36 行

M
36
字号
function c = plus(c1,c2)
% PLUS - Implements uniform crossover 
%   

cdvs_1=get(c1,'cdvs');
ddvs_1=get(c1,'ddvs');

cdvs_2=get(c2,'cdvs');
ddvs_2=get(c2,'ddvs');

if ~isempty(cdvs_1)
  for k=1:length(cdvs_1)
    name=get(cdvs_1(k),'name');
    ind=find(cdvs_2,name);
    if ind
      cdvs_1(k)=cdvs_1(k)+cdvs_2(ind);
    end
  end
else
  cdv_1=cdv;
end

if ~isempty(ddvs_1)
  for k=1:length(ddvs_1)
    name=get(ddvs_1(k),'name');
    ind=find(ddvs_2,name);
    if ind
      ddvs_1(k)=ddvs_1(k)+ddvs_2(ind);
    end
  end
else
  ddvs_1=ddv;
end
c=chrom(get(c1,'name'),cdvs_1,ddvs_1);
    

⌨️ 快捷键说明

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