Stop-eine unendliche while-Schleife durch das drücken einer Taste in Matlab
Habe ich eine while-Schleife, die unendlich ist, und ich möchte, um es zu stoppen, wenn ich drücken Sie eine Taste der Tastatur.
Pseudocode:
While(1)
do stuff;
listening for key;
if key is pressed
break;
end
end
Die Funktion waitforbuttonpress
macht mir die Taste drücken, damit kein Glück.
Ich gefunden habe keine option auf der web.
Sie wissen, dass Strg+C beendet etwas, richtig?
Ich will es beenden, der zwar nicht das ganze Programm.
Prüfen Sie diesen link aus: undocumentedmatlab.com/blog/waiting-for-asynchronous-events . Sehen Sie sich den Abschnitt, wo Sie wollen legen Sie ein Zeitlimit für
hast du eine Lösung gefunden mittlerweile?
Ich will es beenden, der zwar nicht das ganze Programm.
Prüfen Sie diesen link aus: undocumentedmatlab.com/blog/waiting-for-asynchronous-events . Sehen Sie sich den Abschnitt, wo Sie wollen legen Sie ein Zeitlimit für
waitfor
.hast du eine Lösung gefunden mittlerweile?
InformationsquelleAutor SamuelNLP | 2014-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, wenn Sie nicht wollen, zu greifen, zu multithreading (ein thread machst die Berechnung in der while-Schleife, die andere auf eine Eingabe wartet und der Festlegung eines globalen sentinel-Wert zu brechen, die while-Schleife), können Sie versuchen, zu implementieren, zu brechen Sie die Schleife auf den Fang mit der Tastatur-interrupt (ctrl-c). Sollte dies möglich sein, wenn auch in einer irgendwie hackish Weg.
InformationsquelleAutor timgeb
OK, ich weiß, das ist ein bisschen spät aber ich habe eine Lösung gefunden nach einer langen Jagd. Wenn eine Abbildung Fenster fokussiert ist, können Sie dies tun:
Wenn eine Taste gedrückt wird, während der Fokus in einem Bild, setzt es die Eigenschaft "currentchar'. Getestet in R2010b.
InformationsquelleAutor Sanjay Manohar
GUI-basierte Lösung, die ich gefunden in Matlab central
InformationsquelleAutor Shan