📄 print.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 + -