How do you get fval with iterations out of ga and particleswarm (genetic algorithms and particle swarm)

2 vues (au cours des 30 derniers jours)
Currently I have:
[s_best,fval_best] = ga(fhandleformatlab,d_fun,[],[],[],[],lb_fun, ub_fun,[],[],options);
[s_best,fval_best,~,~] = particleswarm(fhandleformatlab,d_fun,lb_fun, ub_fun,options);
But I want to save the result of fval at each iteration/generation to an array, so I can analyse how fast the algorithm converges to optimum. I cannot see how to get this output into an array in the matlab workspace.
Note - I do not merely want to display the output, which I can do. I cannot figure out how to output it to an array in the workspace so I can plot it, analyse it etc.

Réponse acceptée

Walter Roberson
Walter Roberson le 1 Sep 2015
You would initialize an array and you would have the output function append to the array each time it was called. I recommend using nested functions for this purpose so that you avoid the temptation of global variables.
  2 commentaires
JMP Phillips
JMP Phillips le 4 Sep 2015
Hi Walter, I just use the evalin function to append it to a variable in the calling function or workspace each iteration.
Mark Brandon
Mark Brandon le 14 Sep 2019
Several years have gone by, but I would be interested in this solution you found. Can provide more detail?

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by