2016-05-13 2 views
0

Zum Beispiel, wenn es ein MATLAB-Programm ist wie folgt:Wie führe ich ein MATLAB-Programm für eine bestimmte Zeit aus?

duration = 1 % minute 
i=1 
while i<1000 
    [X,Y] = ginput(1) 
i = i+1; 
end 

Gibt es eine Möglichkeit, die Ausführung dieses Programms oder sich aus der Schleife zu beenden, wenn es um die zugewiesene Menge Zeit (1 Minute erreicht in diesem Fall) in einer Situation, in der die Fortsetzung der Schleife den Benutzereingriff erfordert (in diesem Fall auf einen Punkt auf der gezeichneten Figur klicken)?

+1

http://www.mathworks.com/help/matlab/ref/tic.html – cxw

+0

Ich bin nicht klar auf genau, was Sie versuchen zu tun. Der Aufruf von 'ginput' wird unbegrenzt warten, bis der Benutzer klickt. Möchten Sie die Eingabe unterbrechen? Wenn ein Benutzer zu lange braucht, gibt er auf und führt entweder einen anderen Code aus oder gibt einen Fehler aus? – horchler

+0

@horchler Ja, der Grund, warum ich {ginput} gesetzt habe, ist, dass ich auf die Beendigung der Ausführung der Schleife hinweisen wollte, auch wenn sie auf Eingaben vom Benutzer wartet oder die Schleife in diesem Moment noch nicht beendet ist. – Remy

Antwort

0

Wenn Sie einen Prozess in der Schleife für mindestens eine Minute lang tun mögen, können Sie es wie folgt tun:

start = now 
while now - start < 60/60/24 
    %do something for a minute 
end 

Als Kommentator oben gesagt, wird auf unbestimmte Zeit warten, so G Eingang nicht planen auf dieser Arbeit.

+0

Vielen Dank für Ihre Antwort. Aber es kann die Schleife nicht beenden, wenn sie sich noch in der Schleife zur Endzeit für Fälle befindet, die ich bereits erwähnt habe. – Remy

Verwandte Themen