⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cload.m

📁 多目标遗传算法/用法不用多说、要用的赶快下载吧
💻 M
字号:
function c_out = cload(fid,varargin)% LOAD_CHROM - Loads a chromosome vector. %   c = load_chrom(fid), loads a chromosome vector (generation)%   from a file. The fid is the file indicator, note the file%   should be rightly positioned.%   See also SAVE_CHROMfgetl(fid);fgetl(fid);tmp=fgetl(fid);nmbr_chr=str2num(tmp(24:end));fgetl(fid);for k=1:nmbr_chr  fgetl(fid);  fgetl(fid);  fgetl(fid);    tmp=fgetl(fid);  name_chr=tmp(7:end);  tmp=fgetl(fid);  fitness=str2num(tmp(9:end));  fgetl(fid);  fgetl(fid);    c_out(k)=chrom(name_chr,cdv,ddv);  c_out(k)=set(c_out(k),'fitness',fitness);    name_cdv=fgetl(fid);  tmp=fgetl(fid);  val_cdv=sscanf(tmp,'%g');  tmp=fgetl(fid);  lim=sscanf(tmp,'%g');  tmp=fgetl(fid);  bits_dna=sscanf(tmp,'%g');  cdvs=read_cdvs(name_cdv,val_cdv,lim,bits_dna);  c_out(k)=set(c_out(k),'cdvs',cdvs);  %=============DDVS===========================================  fgetl(fid);fgetl(fid);fgetl(fid);  name_ddv=fgetl(fid);  tmp=fgetl(fid);  val_ddv=sscanf(tmp,'%g');  p_val=fgetl(fid);  tmp=fgetl(fid);  dna=sscanf(tmp,'%g');  ddvs=read_ddvs(name_ddv,val_ddv,p_val,dna);  c_out(k)=set(c_out(k),'ddvs',ddvs);endfgetl(fid);function cdvs = read_cdvs(name_cdvs,val_cdv,lim,bits_dna)% READ_CDVS - %   if and(length(name_cdvs)==1,isspace(name_cdvs))  cdvs=cdv;else    [n r]=strtok(name_cdvs);  cdvs(1)=cdv(n,0,0,0);  ind=2;  while length(r)>1    [n r]=strtok(r);    cdvs(ind)=cdv(n,0,0,0);    ind=ind+1;  end  for k=1:length(cdvs)    cdvs(k)=set(cdvs(k),'value',val_cdv(k));  end  l_lim=lim(1:2:end);  u_lim=lim(2:2:end);  for k=1:length(cdvs)    cdvs(k)=set(cdvs(k),'l_limit',l_lim(k));    cdvs(k)=set(cdvs(k),'u_limit',u_lim(k));  end  bits=bits_dna(1:2:end);  dna=bits_dna(2:2:end);  for k=1:length(cdvs)    cdvs(k)=set(cdvs(k),'bits',bits(k));    cdvs(k)=set(cdvs(k),'dna',tobin(dna(k),bits(k)));  endend%------------------------------------------------------------function ddvs = read_ddvs(name_ddvs,val_ddv,p_val,dna)% READ_DDVS - %   if and(length(name_ddvs)==1,isspace(name_ddvs))  ddvs=ddv;else    [n r]=strtok(name_ddvs);  ddvs(1)=ddv(n,0);  ind=2;  while length(r)>1    [n r]=strtok(r);    ddvs(ind)=ddv(n,0);    ind=ind+1;  end  for k=1:length(ddvs)    ddvs(k)=set(ddvs(k),'value',val_ddv(k));  end    tabs=findstr(p_val,sprintf('\t'));  tabs=[1 tabs];  for k=1:length(tabs)-1    p_string=p_val(tabs(k):tabs(k+1));    pval=sscanf(p_string,'%g')';    ddvs(k)=set(ddvs(k),'p_val',pval);  end    bits=dna(1:2:end);  dna=dna(2:2:end);  for k=1:length(ddvs)    ddvs(k)=set(ddvs(k),'bits',bits(k));    ddvs(k)=set(ddvs(k),'dna',tobin(dna(k),bits(k)));  endendfunction b = tobin(dec,bits)% TOBIN - %   tmp=dec2bin(dec);zero=bits-length(tmp);if zero  for k=1:zero    b(k)=0;  end  for l=1:length(tmp);    b(k+l)=str2num(tmp(l));  endelse  for l=1:length(tmp);    b(l)=str2num(tmp(l));  endend

⌨️ 快捷键说明

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