example5_36.m

来自「MATLAB7辅助控制系统设计与仿真 第5章」· M 代码 · 共 19 行

M
19
字号
function NewChrom = mut(OldChrom,Pm,BaseV)
% OldChrom-当代种群的染色体
% Pm-变异概率
% BaseV-染色体基

[Nind, Lind] = size(OldChrom) ;
if nargin < 2, Pm = 0.7/Lind ; end
if isnan(Pm), Pm = 0.7/Lind; end
if (nargin < 3), BaseV = crtbase(Lind);  end
if (isnan(BaseV)), BaseV = crtbase(Lind);  end
if (isempty(BaseV)), BaseV = crtbase(Lind);  end
if (nargin == 3) & (Lind ~= length(BaseV))
   error('OldChrom and BaseV are incompatible'), end
% 生成变异屏蔽矩阵
BaseM = BaseV(ones(Nind,1),:) ;

% 进行变异操作
NewChrom = rem(OldChrom+(rand(Nind,Lind)<Pm).*ceil(rand(Nind,Lind).*(BaseM-1)),BaseM);

⌨️ 快捷键说明

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