how break loop in execution?
    1 visualización (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    pipor
 el 10 de Sept. de 2023
  
    
    
    
    
    Comentada: pipor
 el 10 de Sept. de 2023
            
i can write a piece of my code:
appp = uifigure;
appp.Position = [500 500 300 75];  
BB = uiprogressdlg(appp,'Message','Calcunate Simulation','Indeterminate','on');
drawnow;
x=1000;
for i=1:x
    ....
        .....
        BB.Value = count/n_Loop;
    BB.Message = sprintf('Calculate Simulation Equity %d/%d cycle',count,n_Loop);
end
close(BB);
close(appp);
if I want to interrupt the cycle while it is running (with banner running) how can I do it?
Is it possible to add a "Stop" button? and how implement it? (i want to avoid ctrl+c in the editor)
0 comentarios
Respuesta aceptada
  Voss
      
      
 el 10 de Sept. de 2023
        
      Editada: Voss
      
      
 el 10 de Sept. de 2023
  
      Set the uiprogressdlg 'Cancelable' property to 'on' when it is created. Then in the loop, check the 'CancelRequested' property, and break out of the loop if it is true.
appp = uifigure;
appp.Position = [500 500 300 75];  
BB = uiprogressdlg(appp,'Message','Calculate Simulation','Indeterminate','on','Cancelable','on');
drawnow;
x=1000;
for i=1:x
    if BB.CancelRequested
        break
    end
    % ....
    % .....
    BB.Value = count/n_Loop;
    BB.Message = sprintf('Calculate Simulation Equity %d/%d cycle',count,n_Loop);
end
close(BB);
close(appp);
3 comentarios
  Voss
      
      
 el 10 de Sept. de 2023
				Updating the progress bar takes time; that's what slows down the loop. Instead of updating its Value and Message on each iteration of the loop, you can update every 10 or 100 iterations, which would save some time.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

