因为最近跑实验,经常要复制大量算法做参数有效性或其他对照试验,但是每次都要重新打开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 就已经变了,
需要再点击一下下面的筛选按钮就会重新加载列表
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏