Info
この質問は閉じられています。 編集または回答するには再度開いてください。
parfor loop , how should i use
1 回表示 (過去 30 日間)
古いコメントを表示
Hi,
this is part of my code, it is my frist time to use par for.
the first question, how to fix this error such that The variable Evaluation in a parfor cannot be classified.
second shoud i use parfor loop for eac for loop or that one time as my code?
Thanks in advance.
parfor i=1:iteration
for k=1:swarm_size
zz=1;
for j=1 :centers
[fbest,best]=min(Evaluation);
gbest= swarm(best,:);
new_pos =swarm(k,:);
v(k,zz:zz+1)=v(k,zz:zz+1)+c1*rand*(Pbest(k,zz:zz+1)-swarm(k,zz:zz+1))+c2*rand*(gbest(1,zz:zz+1)-swarm(k,zz:zz+1));
new_pos(1,zz:zz+1)=swarm(k,zz:zz+1)+v(k,zz:zz+1);
zo=1; lo=1;
for Io=1: centers
C3C(:,Io) = f(Invpoints(:,1), new_pos(1,zo),Invpoints(:,2), new_pos(1,zo+1));
zo=zo+2;
end
fnewpos= sum(min(C3C,[],2));
for go=1: centers
C4C(:,go) = f(Invpoints(:,1), swarm(k,lo),Invpoints(:,2), swarm(k,lo+1));
lo=lo+2;
end
fswarm = sum(min(C4C,[],2));
zz=zz+2;
end
end
min(Evaluation)
end
16 件のコメント
Walter Roberson
2019 年 3 月 25 日
I am not sure what Dimensions corresponds to in your code?
What kind of value does centers have?
Your code appears to run j=1:centers and within that loop runs for Io = 1:centers, and also for go=1:centers . That suggests a run time on the order of swarm_size * centers^2 -- or possibly more as it is not clear whether f is a function or a 4D array being indexed.
Your code would really benefit from comments; it is difficult to understand what you are doing and why.
回答 (0 件)
この質問は閉じられています。
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!