waitbar bar inside two for loops
24 views (last 30 days)
Show older comments
Alejandro Fernández
on 10 Aug 2020
Commented: Alejandro Fernández
on 10 Aug 2020
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 Comments
Accepted Answer
Geoff Hayes
on 10 Aug 2020
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.
More Answers (0)
See Also
Categories
Find more on Dialog Boxes in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!