matlab - Matlab服务员“取消”按钮不会响应
问题描述
我使用内置的 Matlab等待栏功能,还使用内置的“CreateCancelBtn”选项,它添加了一个取消按钮(这样我就可以取消一个 for 循环)。
问题是,当我按下“取消”按钮时,什么也没有发生,但如果我按下“X”按钮,该过程将被取消(根据 Matlab,“X”按钮被定义为像“取消”按钮)。
另一个事实:只有当我从我的项目(GUIDE UI)运行函数(见下文)时才会出现问题,但是当我作为独立运行代码时,没有问题。任何想法如何解决\跟踪问题?
waitbar 函数文档的链接: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
解决方案
推荐阅读
- javascript - 如何销毁和重新初始化 lightgallery.js
- c# - 已解决:IIS 应用程序池应用程序和控制台应用程序运行不佳。- 命名互斥体
- google-calendar-api - 如何确定 Google Calendar API 中系列的原始重复事件 ID?
- c# - CSVHelper 无法映射结果
- javascript - 使用 JS 悬停的工具提示
- html - 具有未正确生成的可滚动属性的引导表
- javascript - 浏览器后退按钮应该与我表单中的后退按钮相同
- apache-kafka - Kafka Log Compacted Topic Duplication Values against the same key not deleted
- rust - Rust 期货——将函数改编为 Sink
- c# - 使用 Task.Delay 延迟 24 小时是否安全