example5_34.m

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

M
16
字号
function NewChrIx = sus(FitnV,Nsel);
% FitnV-种群中每个染色体的适值
% Nsel-选择的染色体数目

[Nind,ans] = size(FitnV);
% 进行随机采样
cumfit = cumsum(FitnV);
trials = cumfit(Nind) / Nsel * (rand + (0:Nsel-1)');
Mf = cumfit(:, ones(1, Nsel));
Mt = trials(:, ones(1, Nind))';
[NewChrIx, ans] = find(Mt < Mf & [ zeros(1, Nsel); Mf(1:Nind-1, :) ] <= Mt);

%得到新的种群
[ans, shuf] = sort(rand(Nsel, 1));
NewChrIx = NewChrIx(shuf);

⌨️ 快捷键说明

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