主题:紧急求助!!关于matlab自带遗传算法工具箱的一个难题
function z=my_cond(num);
r_num=50;
%
% for r=1:50
%
% dcm='E:\散射0.2-6um\';
% rds=num2str(r/10);
%
% opn_name=[dcm rds 'um.txt'];
%
% fid(1)= fopen(opn_name,'rt');
% for w=1:5800
% Q_orgin(w,r)=fscanf(fid(1),'%e',1);
% end
% fclose(fid(1));
% end
wave_num=50;
for r=1:50
for s=1:wave_num
Q_try(s,r)=Q_orgin(ceil(num(s)),r);
end
end
z=cond(Q_try);
上面这段代码是m文件里的代码(目标函数),当用matlab自带遗传算法工具箱优化的时候,%号后面的部分,遗传算法每次循环都会调用,这样会极大增加计算时间。实际上只需要调用一次就可以了,有什么办法只让这部分在第一次循环的时候才调用,以后就不调用了?
r_num=50;
%
% for r=1:50
%
% dcm='E:\散射0.2-6um\';
% rds=num2str(r/10);
%
% opn_name=[dcm rds 'um.txt'];
%
% fid(1)= fopen(opn_name,'rt');
% for w=1:5800
% Q_orgin(w,r)=fscanf(fid(1),'%e',1);
% end
% fclose(fid(1));
% end
wave_num=50;
for r=1:50
for s=1:wave_num
Q_try(s,r)=Q_orgin(ceil(num(s)),r);
end
end
z=cond(Q_try);
上面这段代码是m文件里的代码(目标函数),当用matlab自带遗传算法工具箱优化的时候,%号后面的部分,遗传算法每次循环都会调用,这样会极大增加计算时间。实际上只需要调用一次就可以了,有什么办法只让这部分在第一次循环的时候才调用,以后就不调用了?