?? cload.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 + -