MATLAB Answers


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

Asked by JMP Phillips on 1 Sep 2015
Latest activity Commented on by Mark Brandon on 14 Sep 2019 at 1:59
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.


Sign in to comment.

1 Answer

Answer by Walter Roberson
on 1 Sep 2015
 Accepted Answer

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.


Hi Walter, I just use the evalin function to append it to a variable in the calling function or workspace each iteration.
Several years have gone by, but I would be interested in this solution you found. Can provide more detail?

Sign in to comment.