gusucode.com > 十大算法matlab程序说明 > 十大算法matlab程序说明/遗传算法/用MATLAB实现遗传算法程序/F2B.m
function [pops,len]=F2B(x,bounds,len) %二进制编码转化为十进制 %[pops]=F2B(x,bounds,len) %x 二进制串如x=[0 1 1 0 0 1 0 1 0 1 0 1] %len 二进制串的分段len=[3 4 5] %bounds 边界约束 %pops 十进制 % 作者:机自01-2班曾新海 % zxh21st@163.com n=length(x); m=length(len); q=[]; for i=1:m q(i)=sum(len(1:i)); end q=[0 q]; for j=1:m pops(j)=bounds(j,1); p=[]; p=x(q(j)+1:q(j+1)); L1=q(j+1)-q(j); for k=1:L1 pops(j)=pops(j)+p(k)*2^(k-1); end end