code.m

来自「MATLAB的遗传算法工具」· M 代码 · 共 25 行

M
25
字号
function ret=Code(lenchrom,opts,bound)
% In this function ,it converts a set varibles into a chromosome
% lenchrom   input : length of chromosome
% opts       input : tag of coding method
% bound      input : boundary of varibles
% ret        output: chromosome
switch opts
    case 'binary' % binary coding
        pick=rand(1,sum(lenchrom));
        bits=ceil(pick-0.5);
        temp=sum(lenchrom)-1:-1:0;
        ret=sum(bits.*(2.^temp));
    case 'grey'   % grey coding
        pick=rand(1,sum(lenchrom));
        bits=ceil(pick-0.5);
        greybits=bits;
        for i=2:length(greybits)
            greybits(i)=bitxor(bits(i-1),bits(i));
        end
        temp=sum(lenchrom)-1:-1:0;
        ret=sum(greybits.*(2.^temp));
    case 'float'   % float coding
        pick=rand(1,length(lenchrom));
        ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick;
end

⌨️ 快捷键说明

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