如何使用自定义输出功能为ga优化创建GUI停止按钮?

时间:2018-06-13 11:40:58

标签: matlab matlab-guide matlab-compiler

我在matlab中开发一个应用程序,它使用ga优化来改善图像上的圆检测。我需要创建一个对话框,以便在执行ga优化时显示,并带有一个停止按钮,如果用户想要关闭程序。我知道在ga中使用输出函数并将按钮回调链接到该函数是一种使这项工作的方法。 这是对话框的代码:

d = dialog('Position',[300 300 250 150],'Name','MyApp');
txt = uicontrol('Parent',d,'Style','text','Position',[20 80 210 40],...
'String','Calculating. This operation may take several minutes');
btn = uicontrol('Parent',d,'Position',[85 20 70 25],...
'String','Cancel','Callback',@gaoutfun);

和输出函数,通过将state.StopFlag设置为非空字符串,可以立即停止ga。

function [state,options,optchanged] = gaoutfun(options,state,flag)
drawnow
optchanged = false
state.StopFlag = 'y';
end

我正在获取无法识别的属性' StopFlag'当我点击按钮时出现类' matlab.ui.eventdata.ActionData' 错误,如果我没有点击,则ga只执行一次迭代并终止。有谁知道如何让按钮正常工作?

0 个答案:

没有答案