waitbar bar inside two for loops
24 次查看(过去 30 天)
显示 更早的评论
Hi, I have the folowing code (it's just a example)
maxI = 2;
maxJ = 3;
cont = 1/(maxI*maxJ)
for i = 1:maxI
for j = 1 : max
waitbar(cont,sprintf('Calculating i = %d, j = %d',i,j))
cont = cont + 1/(maxI*maxJ)
pause(rand/10) % here is the code
end
end
If I execute this, every waitbar appears in a new figure, and I want it to just be a figure and automatically update, does someone know?
0 个评论
采纳的回答
Geoff Hayes
2020-8-10
Alajendro - rather than creating a new waitbar on each iteration of the inner loop, just create it once and then re-use it. For example,
maxI = 2;
maxJ = 3;
cont = 1/(maxI*maxJ);
hWaitbar = waitbar(0,sprintf('Calculating i = %d, j = %d',0,0)); % create the waitbar
for i = 1:maxI
for j = 1 : maxJ
waitbar(cont, hWaitbar, sprintf('Calculating i = %d, j = %d',i,j)) % update the waitbar
cont = cont + 1/(maxI*maxJ);
pause(rand/10); % here is the code
end
end
We use the bWaitbar handle to update the waitbar with the new progress and new message.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dialog Boxes 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!