[討論] 請教向量化寫法
這是我原本的寫法
for sol=1:Nsol
for var=1:Nvar
random_number=rand;
if random_number < Cg
X(sol,var)=pX(gBest,var);
elseif random_number< Cp
X(sol,var)=pX(sol,var);
elseif random_number < Cw
continue;
else
X(sol,var)=rand*(UB-LB)+LB;
end
end
end
我想改成向量寫法,結果我寫成這樣,但答案行為好像不對
for sol=1:Nsol
random_numbers= rand(1,Nvar);
cols = find(random_numbers < Cg );
X([sol,cols]) = pX([gBest,cols]);
cols = find( (random_numbers >= Cg) & (random_numbers < Cp) );
X([sol,cols]) = pX([sol,cols]);
cols = find( random_numbers >= Cw);
X([sol,cols]) = rand(size(X([sol,cols]))).*(UB-LB)+LB;
end
可否幫我看看我哪裡寫錯了,看了好久看不出來
感謝!
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.189.237
→
05/16 11:15, , 1F
05/16 11:15, 1F
→
05/16 11:15, , 2F
05/16 11:15, 2F
→
05/16 11:58, , 3F
05/16 11:58, 3F
推
05/16 14:32, , 4F
05/16 14:32, 4F
→
05/16 14:38, , 5F
05/16 14:38, 5F
討論串 (同標題文章)