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

📄 print.m

📁 一些用matlab编写的经典遗传算法算例 挺有用的
💻 M
字号:
function print(fname,chr,arch)
% PRINT - Prints a summary of a generation  to a file specified by 'fname'
%   print('fname',chr,arch) saves the generation chr to file 'fname'
%   arch is the prototypes for the species.
% See also LOGBOOK
chr=sort(chr);
chr=fliplr(chr);
fid=fopen(fname,'w');
fprintf(fid,'File created: %s\n',datestr(now)); 
fprintf(fid,'==================================\n\n');
[mx g_max]=max(chr);
[mn g_min]=min(chr);
fprintf(fid,'Maximum fitness: %g\n',mx);
fprintf(fid,'Average fitness: %g\n',mean(chr));
fprintf(fid,'Minimum fitness: %g\n',mn);
fprintf(fid,'------------------------\n');
fprintf(fid,'Best gen\n');
fprintf(fid,'--------\n');
write(fid,g_max);
fprintf(fid,'Worst gen\n');
fprintf(fid,'---------\n');
write(fid,g_min);
for k=1:length(arch)
  ind=find(chr,get(arch(k),'name'));
  if ind
    fprintf(fid,'Members in design: %s\n',get(arch(k),'name'));
    fprintf(fid,'------------------------------\n');
    write(fid,chr(ind));
  end
  
end
fclose(fid);









function write(fid,c)
% SAVE_CHROM - saves a chromosome to file
%   

for j=1:length(c)
  fprintf(fid,'Name: %s\n',get(c(j),'name'));
  txt=sprintf('Fitness: %g\n',get(c(j),'fitness'));
  fprintf(fid,'%s',txt);


  cdvs=get(c(j),'cdvs');
  fprintf(fid,'CDVS:\n-----\n');

  for k=1:length(cdvs)
    fprintf(fid,'%s\t',get(cdvs(k),'name'));
  end
  fprintf(fid,'\n');
  for k=1:length(cdvs)
    fprintf(fid,'%g\t',get(cdvs(k),'value'));
  end
  fprintf(fid,'\n');
% $$$   for k=1:length(cdvs)
% $$$     fprintf(fid,'%g %g',get(cdvs(k),'l_limit'),get(cdvs(k), ...
% $$$ 						   'u_limit'));
% $$$     fprintf(fid,'\t');
% $$$   end
  fprintf(fid,'\n');
% $$$   for k=1:length(cdvs)
% $$$     fprintf(fid,'%g %g',get(cdvs(k),'bits'),todec(get(cdvs(k),'dna')));
% $$$     fprintf(fid,'\t');
% $$$   end
  
%===============DDVS=========================================
  
  ddvs=get(c(j),'ddvs');
  fprintf(fid,'DDVS:\n-----\n');
  for k=1:length(ddvs)
    fprintf(fid,'%s\t',get(ddvs(k),'name'));
  end
  fprintf(fid,'\n');
  for k=1:length(ddvs)
  fprintf(fid,'%g\t',get(ddvs(k),'value'));
  end
  
  fprintf(fid,'\n');
% $$$   for k=1:length(ddvs)
% $$$     p_val=get(ddvs(k),'p_val');
% $$$     fprintf(fid,'%g ',p_val);
% $$$     fprintf(fid,'\t');
% $$$   end
  fprintf(fid,'\n');
% $$$   for k=1:length(ddvs)
% $$$     fprintf(fid,'%g %g',get(ddvs(k),'bits'),todec(get(ddvs(k),'dna')));
% $$$     fprintf(fid,'\t');
% $$$   end
end



function num = todec(dna)
% TODEC -
t=num2str(dna);
tmp='';
for k=1:length(t)      
if ~isspace(t(k))      
tmp=strcat(tmp,t(k));  
end                  
end
num=bin2dec(tmp);



⌨️ 快捷键说明

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