循环不执行
function [newPop,newin]=sele(pop,fitness)totalFit=sum(fitness);%求适应值之和;
fitValu=fitness/totalFit;%单个个体被选中的概率
fitValu=cumsum(fitValu);%进行累加
[px,~]=size(pop);
ms=sort(rand(px,1));
fitin=1;
newin=1;
newPop=zeros(size(pop));%这里我给新生种群一个初始值,去掉的话程序报错。可是即使这样,循环仍然不被执行
while newin<px
if(ms(newin))<fitValu(fitin)
newPop(newin)=pop(fitin);
newin=newin+1;
else
fitin=fitin+1;
end
end
这是我看到的遗传算法的一个选择函数,pop为迭代前的种群矩阵,fitness为计算出的适应值为一向量。测试函数时发现while循环根本不执行,也不知道错在哪里。