B2F.m
上传用户:qzfzqd
上传日期:2013-04-17
资源大小:7k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. function  [B,len,v]=B2F(sol,bounds)
  2. %[B,len]=B2F(x,bounds)    二进制编码函数
  3. %x                        编码向量如x=[6 8 9];
  4. %bounds                   边界约束ru如bounds=[4 8 ;3  11;6  12;];
  5. %B                        二进制编码串
  6. %编码长度L由bounds(2)-bounds(1)决定
  7. %以上为例:
  8. %     编码长度向量L=[4 8 6]编成二进制L=[11 1000 110],则len=[2 4 3]
  9. %     计算B=x-bound(1)=[2 5 3]编成二进制 B=[10 0101 011]
  10. %           作者:机自01-2班曾新海
  11. %           zxh21st@163.com
  12. n=length(sol);
  13. len=[];B=[];v=[];
  14. L=bounds(:,2)-bounds(:,1);
  15. L=de2bi(L);
  16. for i=1:n
  17. len(i)=length(L(i,:));
  18. end
  19. v=sol-bounds(:,1)';
  20. for i=1:n
  21.     B=[B de2bi(v(i),len(i))];
  22. end