Tastatureingabe Matlab erkennen

8

Ich habe eine einfache Frage, obwohl es schwerer ist als es scheint; Ich konnte die Antwort auf die Interwebs nicht finden: O

Ich schreibe ein Skript in Matlab. Was ich machen möchte, ist folgendes:

  • Wenn ich die Esc-Taste drücke, möchte ich, dass ein Hilfedialog erscheint, damit mein Skript pausiert. (Wenn ich also esc drücke, möchte ich das ganze Skript anhalten, damit das Auto (für das ich das Skript schreibe) aufhört zu fahren)

Wie mache ich das? Wie kann ich zu Matlab sagen: Wenn ich esc drücke, mache das ...

Danke für Ihre Zeit Leute!

EDIT: Es ist keine Option etwas zu implementieren, das den Tastendruck erwartet. Ich schreibe ein Drehbuch für ein fahrendes Auto. Es muss einfach herumfahren, aber wenn ich zB esc drücke, sollte es aufhören zu fahren. Das Skript muss also nur laufen, bis ich die Esc-Taste drücke. dann muss das Skript anhalten.

    
Earless 03.03.2014, 11:15
quelle

4 Antworten

3

In einer Matlab-Figur können Sie ein 'KeyPressFcn' definieren, das ähnlich funktioniert wie das, was Sie fragen.

Wenn Sie in der Konsole sind, müssen Sie umgehen, dass Matlab single threaded ist. Grundsätzlich müssen Sie den Programmablauf anhalten, um nach Tastendrücken zu suchen.

btw - auch wenn Sie 'KeyPressFcn' verwenden, müssen Sie einige Pausen machen, damit Matlab überprüft, ob etwas passiert ist.

btw2 - Ich sollte auch hinzufügen, dass Matlab während dieser Pausen nicht nur die Tasten drücken wird, sondern auch ein paar Dinge verwalten, wie das Fenster neu zeichnen und so weiter.

    
bdecaf 03.03.2014, 13:29
quelle
5

KeyPressFcn ist gut, da Sie gezwungen sind, ereignisgesteuerten Code zu schreiben. Was im Allgemeinen eine gute Idee ist! Wenn KeyPressFcn jedoch nicht für Sie geeignet erscheint, beispielsweise wenn Sie in einer Schleife weiterlaufen müssen und Sie nur pollen überprüfen möchten, ob eine Taste gedrückt wurde, habe ich diese Lösung gefunden auf der Matlab-Website:

%Vor%

Dann könnten Sie diese Eigenschaft auf ein leeres Feld setzen und nach Bedarf abfragen. z.B.:

%Vor%

Das hat 2014 für mich gut funktioniert. Der Nachteil ist, dass das Grafikfenster auf die Schlüsselereignisse fokussiert werden muss.

    
Sanjay Manohar 07.03.2015 13:10
quelle
1

Ich habe häufig ähnliche Anwendungsfälle kennengelernt und reagierte in der Regel lieber auf Joystick-Schaltflächen, weil vrjoystick eine bequemere Schnittstelle bietet. Kürzlich habe ich jedoch eine Bibliothek geschrieben, die eine ähnliche Schnittstelle für Tastatureingaben bietet.

%Vor%

Es ist nicht blockierend und erfordert keine Konzentration auf eine bestimmte Figur.

Dateiaustausch: Ссылка

Github: Ссылка

    
Florian Enner 26.01.2017 21:51
quelle
0

Ich hatte einmal eine verwandte Aufgabe, und ich tat es mit getkey Formular Matlab-Dateiaustausch . Grundsätzlich möchten Sie es für ASCII 1B (27 dezimal) hören lassen

Wenn getkey dein Problem nicht löst, kannst du immer noch seinen Code ansehen und vielleicht die Zeile finden, die dir den Spaß macht.

    
ben 03.03.2014 13:25
quelle