Matlab服务员的“取消”按钮将不响应

时间:2019-04-06 09:56:24

标签: matlab matlab-figure matlab-guide

我使用内置的Matlab waitbar函数,还使用内置的“ CreateCancelBtn”选项,该选项添加了一个取消按钮(因此我可以取消for循环)。

问题是,当我按下“取消”按钮时,什么也没发生,但是如果我按下“ X”按钮,该过程将被取消(根据Matlab “ X”按钮的定义类似于“取消”按钮。)

另一个事实:仅当我从项目(GUIDE UI)运行函数(见下文)时,才会出现问题,但是当我独立运行代码时,就没有问题。 有什么想法可以解决\跟踪问题吗?

指向等待栏功能文档的链接:https://www.mathworks.com/help/matlab/ref/waitbar.html

这是我正在使用的代码(来自mathworks文档):

function approxpi

f = waitbar(0,'1','Name','Approximating pi...',...
    'CreateCancelBtn','setappdata(gcbf,''canceling'',1)');

setappdata(f,'canceling',0);

% Approximate pi^2/8 as: 1 + 1/9 + 1/25 + 1/49 + ...
pisqover8 = 1;
denom = 3;
valueofpi = sqrt(8 * pisqover8);

steps = 20000;
for step = 1:steps
    % Check for clicked Cancel button
    if getappdata(f,'canceling')
        break
    end

    % Update waitbar and message
    waitbar(step/steps,f,sprintf('%12.9f',valueofpi))

    % Calculate next estimate 
    pisqover8 = pisqover8 + 1 / (denom * denom);
    denom = denom + 2;
    valueofpi = sqrt(8 * pisqover8);
end

delete(f)
end

0 个答案:

没有答案