6 votes

Comment faire fonctionner une barre d'attente dans Matlab ?

Je veux avoir une barre d'attente pour une opération qui prend un certain temps. Voici mon code :

h = waitbar(0,'Please wait...');

for i=1:counterend
    waitbar(i/waitbarcounter)
    Atemp    = At+i*step;
    handle   = @(M) 1/M^2*((2/(gamma+1))*(1+(gamma-1)*M^2/2))^((gamma+1)/(gamma-1))-(Atemp/At)^2;
    Mach     = fzero(handle, 5);
    Aplot(i) =  Atemp/At;
    Tplot(i) = Tc / (1+(gamma-1)*Mach^2/2);
    Mplot(i) = Mach;
    plot(Aplot, Tplot)
end

close(h) 

L'erreur que Matlab donne est la suivante :

? ?? Erreur d'utilisation de la barre d'attente ==> à 249
Arguments incorrects pour la barre d'attente

Après enquête, je suis sûr que cette erreur doit se produire à cause du code environnant dans la boucle.

Note : La boucle fonctionne bien sans la barre d'attente.

0voto

user4144606 Points 1

Vous êtes supposé utiliser le handle que vous avez créé avec votre première ligne de code lorsque vous voulez mettre à jour le serveur, Waiter(it/itmax,h,'progress')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X