Ich verwende Psychtoolbox in MATLAB, um ein verhaltenspsychologisches Paradigma zu betreiben. Als Teil des Paradigmas müssen Benutzer einen visuellen Reiz sehen und darauf mit einem Eingabemechanismus reagieren. Für eine Tastatur funktioniert dies wie folgt:Wie kann ich Eingabe und Anzeige in MATLAB parallelisieren?
- zeigen Stimulus
- Umfrage Tastatur für die Antwort
- wenn keine Antwort erkannt, Schleife zurück auf 1
- wenn Antwort erkannt wird, brechen und mit Skript weitergehen
Dies funktioniert für eine Tastatur in Ordnung, wie in Schritt 2 zwischen 1-2 ms dauert. Das Problem tritt auf, wenn ich einen alternativen Eingabemechanismus verwende; In diesem Fall dauert Schritt 2 ~ 20 ms. (Ich brauche diese alternative Eingabe, um die Studie auszuführen, und das sollte als unveränderliche Tatsache betrachtet werden.) Da sich der Stimulus mit einer sehr kurzen Zeitspanne ändert, unterbricht diese zusätzliche Verzögerung die Aufgabe.
Mein aktueller Gedanke ist zu versuchen, die parallele Verarbeitung zu verwenden, so dass ein Thread den Stimulus anzeigt und ein anderer Thread die Tastatur abfragt. Ich verwende derzeit die Parallel Computing Toolbox, um dies zu tun. Das Problem, das ich habe, ist, dass ich nicht weiß, wie man Tastatureingabe zu einem "parallelisierten" Thread leitet. Weiß jemand (1), ob es möglich ist, Tastatureingaben zu einem Thread zu leiten/ein Thread zu haben, senden Sie ein visuelles Signal an einen Monitor, und wenn ja, (2) wie geht das?
Auch wenn jemand bessere Ideen hat, wie man dieses Problem angehen kann, bin ich ganz Ohr.
Ich bin ein wenig verwirrt. Möchten Sie einen Stimulus anzeigen, eine voreingestellte Zeitspanne für eine Antwort des Benutzers warten und dann einen anderen Stimulus anzeigen, in dem sie nicht geantwortet haben (oder die Schleife unterbrechen, wenn sie vorhanden sind)? Wie genau "bricht" die Verzögerung die Aufgabe? – gnovice
@gnovice - Nein, ich möchte einen Stimulus zeigen (und ständig aktualisieren) und nur aufhören, ihn zu zeigen (zu aktualisieren), wenn eine Antwort gegeben wird. Wie die Verzögerung bricht, ist ziemlich detailliert, aber es genügt zu sagen, dass der Bildschirm in der Größenordnung von 5-8 ms aktualisiert werden muss und die zusätzliche Verzögerung von 20 ms zu lang ist. – eykanal
Also, ich denke, Sie haben einen animierten Stimulus, wenn Sie es kontinuierlich aktualisieren müssen, aber alle 5-8 ms wäre eine Bildrate von 125-200 Hz. Muss es wirklich so schnell sein? Eine typische Bildrate von 60 Hz ist normalerweise gut genug, um ein Flackern zu vermeiden. – gnovice