Je tente de créer une boucle while qui sera bouclée en continu jusqu'à la saisie de l'utilisateur sur la ligne de commande.Interruption/Arrêt en boucle depuis l'entrée utilisateur sur la ligne de commande Matlab
J'ai essayé deux implémentations de ce premier, le premier dérivé de ce bit de python. Le problème étant que vous devez entrer autre chose que de sortir chaque fois que vous voulez parcourir la boucle.
global active
active = true;
while active == true
userInput = input('enter: ','s');
inputHandler(userInput)
disp(rand)
pause(1);
end
function inputHandler(value)
global active
if value == 'exit'
active = false;
end
end
Le second était
global loopFlag
loopFlag = true
while loopFlag == true
%some awesome code happens here
end
l'idée étant que vous pouvez entrer dans la ligne de commande loopFlag = false
tandis que le code exécutait et arrêteriez. Je sais que cela peut être fait par l'utilisation d'un toggle button mais je préférerais ne pas avoir à suivre cette route, sauf si absolument nécessaire.
Alors, quel est le problème avec la première implémentation? –
@LuisMendo vous devez entrer quelque chose chaque fois que vous voulez faire une boucle. J'ai besoin de la boucle pour fonctionner tout seul jusqu'à ce qu'il voit une entrée de la ligne de commande –
Je ne connais pas un moyen pour la fenêtre de commande de détecter une touche, autre que 'input', qui, comme vous l'avez vu arrête le l'exécution du programme en attendant l'entrée. Vous pourriez peut-être créer une figure et définir son '' WindowKeyPressFcn '' afin qu'il change son 'UserData' de true à false. La boucle 'while' dans le programme serait alors' while (figureHandle, 'UserData') ' –