【问题标题】:How to display parameter values at every iteration while using Genetic algorithm in matlab在matlab中使用遗传算法时如何在每次迭代中显示参数值
【发布时间】:2017-04-12 19:51:12
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: matlab optimization parameters genetic-algorithm


    【解决方案1】:

    您可以使用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
    

    【讨论】:

    • 这行得通,我可以使用这个例程显示其他值。非常感谢您帮助我解决这个问题!
    【解决方案2】:

    您是否尝试过使用函数fprintf

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

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

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

    【讨论】:

    • 是的,我做到了,但也许我没有正确使用它。根据 AVK 的评论,我能够使用 fprintf 和 disp 选项显示结果。谢谢!
    • 太棒了!很高兴听到它!
    猜你喜欢
    • 1970-01-01
    • 2010-11-12
    • 2012-08-19
    • 1970-01-01
    • 2021-03-04
    • 2014-03-13
    • 2015-11-08
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多