如何在Matlab中实现宽限度的按用户终止?

时间:2019-01-29 15:28:35

标签: matlab

我正在Matlab中进行贝叶斯超参数搜索。这个过程本质上是无限的,所以我展示了该图,并受迭代次数和时间的限制。但是,我经常看到情节将不再改善,并希望终止该过程。如果我强行终止脚本,它将在随机位置停止并且无法正常完成。我希望它可以保存到目前为止找到的最佳组合。

我可以制作一个按钮或其他东西来标记进程以优雅地终止并执行最终操作吗?

1 个答案:

答案 0 :(得分:0)

这是一个简单的示例,展示了如何使用uicontrol助手来完成此任务。

function pushbuttonPlot
f = figure;
ax = axes;

L = 160*membrane(1,100);
s = surface(L);
s.EdgeColor = 'none';
view(3)
ax.XLim = [1 201];
ax.YLim = [1 201];
ax.ZLim = [-53.4 160];

c = uicontrol;
c.String = 'Clean Up';
c.Callback = @cleanUpandExit;

    function cleanUpandExit(src,event)
        disp('Cleanup and exit');
        % Save data and exit
        close(f);
    end

end