Matlab 如何在群优化的每次迭代中显示最佳值x(不是f(x))

Matlab 如何在群优化的每次迭代中显示最佳值x(不是f(x)),matlab,function,optimization,particles,swarm,Matlab,Function,Optimization,Particles,Swarm,如何使群优化在每次迭代中显示最佳解 例如,在本代码中: fun = @(x)x(1)*exp(-norm(x)^2); lb = [-10,-15]; ub = [15,20]; rng default % For reproducibility nvars = 2; x = particleswarm(fun,nvars,lb,ub) 最终的解决方案显示在最后,但我需要在每次迭代中看到解决方案。 我怎么能找到它。根据文档,您可以指定一个输出函数:options=optimoptions(@

如何使群优化在每次迭代中显示最佳解

例如,在本代码中:

fun = @(x)x(1)*exp(-norm(x)^2);
lb = [-10,-15];
ub = [15,20];
rng default  % For reproducibility
nvars = 2;
x = particleswarm(fun,nvars,lb,ub)
最终的解决方案显示在最后,但我需要在每次迭代中看到解决方案。
我怎么能找到它。

根据文档,您可以指定一个输出函数:
options=optimoptions(@particleswarm,'OutputFcn',@outpun)
,我认为语法是
options=optimoptions('particleswarm','OutputFcn',@outpun)
。参见函数。我不知道这是否是您正在寻找的。根据文档,您可以指定一个输出函数:
options=optimoptions(@particleswarm,'OutputFcn',@outpun)
,我认为语法是
options=optimoptions('particleswarm','OutputFcn',@outpun)
。参见函数。我不知道这是不是你要找的。