我在 MATLAB GUI 中更新等待栏时遇到问题。
我创建了一个按预期工作的简单示例。
steps = 5;
hWaitBar = waitbar(0, 'Testing...');
for i = 1:steps
waitbar(i/steps, hWaitBar);
pause(1);
end
close(hWaitBar);
但是,当我在 GUI 中使用这种结构时......
numSteps = %calculated
hWaitBar = waitbar(0, 'Processing...');
if %conditional
for i = 1:numSteps
waitbar(i/numSteps, hWaitBar)
% additional processing
end
else %conditional
% additional processing
end
close(hWaitBar);
...等待栏仅在第一次 for 循环迭代时正确显示。
第二次交互失败并出现以下错误:
Error using waitbar(109)
Improper arguments for waitbar.
- 我已验证等待栏进度值不超过 1。
- 我已经验证等待栏直到在 if/else 循环之外才被关闭。