在for循环中没有更新值

时间:2016-07-23 11:20:02

标签: matlab

在以下代码中,Infinity的值不会随每次迭代而更新,并显示fgbest=Inf; % Initialization of gbest for j=1:Popsize % Generate Random Solution pop(:,j)=randi([500,2000],10,1); [obj]=objfn(pop,it); % Evaluation obj1(j,1) = obj(j,1);% % Update the Personal Best pbest(:,j) = pop(:,j);% pbest fpbest(j,1) =obj1(j,1);% objective function % Update Global Best test = fgbest>fpbest(j,1); if any(test) gbest = pbest(:,j); end gbest end 作为结果。任何人都可以帮我确定原因吗?

{{1}}

1 个答案:

答案 0 :(得分:0)

这可能是因为您将fgbest初始化为Inf。只要值fpbest(j,1)仍然小于Inf,就不会更新gbest的值,因为不满足if条件。您可以尝试使用0或任何其他较小的值初始化它吗?