在matlab中使用遗传算法时如何在每次迭代时显示参数值

How to display parameter values at every iteration while using Genetic algorithm in matlab

我正在使用 GA 使用全局优化工具箱求解 6 个参数。

有没有办法在GA的每次迭代中显示参数值。我可以使用 display 或 iter 但它不一定显示参数值。

谢谢

你试过使用函数fprintf吗?

例如,如果要将向量 x 的第一个元素(浮点数)打印到屏幕:

fprintf(1,'%f\n', x(1))

如果在 formatSpec 下向下滚动一点,您可以在 fprintf 的文档中看到如何格式化数字和字符串。

您可以使用 plot functions。 您可以使用其中一种预定义的绘图函数:

options = gaoptimset('PlotFcns',@gaplotbestf);
x= ga(@f,6,[],[],[],[],[],[],[],options)

或者您可以自己编写。例如:

function gademo
    options= gaoptimset('PlotFcns',@myplot,'PopulationSize',10);
    x= ga(@f,6,[],[],[],[],[],[],[],options)

    function y= f(x) % the fitness function
        y= norm(x);
    end
        % simple plot function
    function state= myplot(options,state,flag)
        fprintf('generation number: %d\n',state.Generation);
        fprintf('population:\n');
        disp(state.Population);
    end
end