MATLAB: Programm anhalten und auf Tastendruck warten

7

Ich schreibe ein Programm, in dem irgendwann ein Graph gezeichnet und auf dem Bildschirm angezeigt wird. Der Benutzer muss dann 'y' oder 'n' drücken, um das Diagramm zu akzeptieren oder abzulehnen. Meine aktuelle Lösung verwendet die PsychToolbox (die tatsächliche Lösung muss nicht), die einen Befehl enthält, der "KbCheck" genannt wird, der zum Zeitpunkt des Aufrufs des Status aller Tastaturtasten überprüft. Mein Code sieht so aus:

%Vor%

Das Problem ist, dass das System wirklich "hängt", bis eine Taste gedrückt wird. Im Idealfall könnte ich scrollen, zoomen und allgemein mit den Grafiken interagieren, die auf dem Bildschirm gezeichnet werden, so dass ich wirklich entscheiden kann, ob ich "y" oder "n" drücken möchte!

Ich habe versucht, 'drawnow; in die while-Schleife oben, aber das funktioniert nicht: Ich kann immer noch nicht mit den gezeichneten Graphen interagieren, bis nachdem ich sie akzeptiert oder abgelehnt habe.

Die Lösung muss nicht die PsychToolbox verwenden; Ich nehme an, es gibt viele andere Möglichkeiten da draußen?

Danke

    
CaptainProg 16.02.2012, 11:50
quelle

6 Antworten

6

Ich würde die Funktion input verwenden:

%Vor%

Obwohl es zugegebenermaßen zwei Tasten drücken muss (y dann Enter), eher die eine.

    
Chris Taylor 16.02.2012, 12:26
quelle
5

Warum nicht stattdessen waitforbuttonpress verwenden?

Dokumentation: Ссылка

    
Oli 16.02.2012 12:20
quelle
5

Warten auf Knopfdruck öffnet eine Figur, die unerwünscht sein kann. Verwenden Sie stattdessen

%Vor%

lässt den Benutzer pausieren, bis eine Taste gedrückt wird.

    
patrik 23.10.2013 06:20
quelle
4

Sie möchten waitforbuttonpress nicht verwenden, da es die Zahl gui sperrt (kein Zoomen, Schwenken usw.).

pause kann dazu führen, dass das Befehlsfenster den Fokus von der Figur stehlen kann.

Die Lösung, die ich am besten finde, ist, die Figur mit einer Null-Taste zu öffnen, um Fokusprobleme zu vermeiden:

%Vor%

und warten Sie dann auf CurrentCharacter Eigenschaftenänderung:

%Vor%     
Tal 03.12.2013 13:54
quelle
1

Warten Sie, bis Sie die Taste drücken oder mit der Maus klicken:

Beispiel:

%Vor%

für weitere Informationen besuchen Sie: Ссылка

    
user3041840 22.05.2014 12:42
quelle
-1

Der Befehl waitforbuttonpress ist gut, wird aber durch einen Mausklick oder einen Tastendruck ausgelöst. Wenn Sie möchten, dass es nur durch einen Tastendruck ausgelöst wird, können Sie den folgenden Hack verwenden:

%Vor%     
user1988213 03.09.2013 20:42
quelle

Tags und Links