循环运行时,Matlab 应用程序中组件的值不会更新

循环运行时,Matlab 应用程序中组件的值不会更新

我使用 Matlab 中的 App Designer 创建了一个应用程序。我有一个名为的复选框CheckBox,想从循环内部访问其值,例如将其显示在控制台中。可以这样做

while true
    disp(app.CheckBox.Value);
end

虽然从技术上讲这是可行的,但这只会显示循环开始前复选框的值。即使我通过分别选中和取消选中复选框来更改值,读取的值app.CheckBox.Value仍保持不变。

如果我pause(0.1);在循环中添加一个语句,那么值就可以更新,但这会大大减慢循环速度。有没有其他方法可以确保复选框(以及应用程序中的任何其他组件)的值正确更新,而无需暂停整个程序?

答案1

这个技巧是通过添加drawnow;循环来实现的,这会强制进行 GUI 更新,但不会增加故意的延迟。

相关内容