waitbar bar inside two for loops

18 Ansichten (letzte 30 Tage)
Alejandro Fernández
Alejandro Fernández am 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?

Akzeptierte Antwort

Geoff Hayes
Geoff Hayes am 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.

Weitere Antworten (0)

Kategorien

Mehr zu Dialog Boxes finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by