PlatEMO平台实现点击Algorithms标签按钮,能动态加载算法列表

avatar 2025年07月16日13:15:16 0 16 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

        因为最近跑实验,经常要复制大量算法做参数有效性或其他对照试验,但是每次都要重新打开PlatEMO实验窗口,然后重新加载要处理的问题,并选择我的算法,很麻烦。

        我想如果不用重新关闭和重启窗口,点击下面这个地方,直接在下面的列表里加载出我新增的算法,多好!

 

说干就干!

一、修改GUI.m代码

经过阅读代码,分析加载算法和问题列表的是Gui.m里的readList算法。

我们后面需要调用 obj.GUI.readList();

需要找到readList上层的methods,把 private 改成 public

methods(Access = public)
简单粗暴!
 

二、修改module_exp.m

1、找到并注释下面这行代码

obj.app.labelA(4)  = GUI.APP(10,[1 2],uilabel(obj.app.grid(1),'Text','Algorithms','VerticalAlignment','bottom','FontSize',13,'FontColor',[.2 .4 .7],'FontWeight','bold'));

添加

obj.app.labelA(4) = GUI.APP(10,[1 2], ...
                uibutton(obj.app.grid(1), ...
                    'Text','Algorithms', ...
                    'FontSize',13, ...
                    'FontColor',[.2 .4 .7], ...
                    'FontWeight','bold', ...
                    'BackgroundColor','w', ...
                    'Tooltip','重新加载算法列表', ...
                    'ButtonPushedFcn',@obj.cb_algorithmsTip));

 

 

2、在 methods(Access = private) 的end前添加下面代码

        %% 弹出提醒
        function cb_algorithmsTip(obj,~,~)
            obj.GUI.readList();
            uialert(obj.GUI.app.figure,'已经刷新算法了,重新筛选可显示!','提示','Icon','info');
        end

 
 妥了!

三、修改module_test.m

同理,代码一模一样!

四、实践和效果

具体操作的话,就是先点击Algorithms按钮,然后 obj 的 algList 就已经变了,

需要再点击一下下面的筛选按钮就会重新加载列表

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0