Ich versuche, ein einfaches RT-Experiment in MATLAB R2014b, mit Psychtoolbox zu erstellen. Die Teilnehmer müssen die Gesichter kategorisieren und einen der beiden Knöpfe so schnell wie möglich drücken. Ich habe das Paradigma auf einem Computer erstellt, und es funktioniert gut, aber als ich es zu einem anderen verschoben habe (dem, auf dem ich testen möchte), gab es einen seltsamen Fehler: obwohl das Programm Tastenanschläge zu protokollieren schien die Mehrheit der Versuche, manchmal antwortete es nicht, und ich musste den Schlüssel einige Male drücken, bevor es zum folgenden Versuch fortfuhr. Ich bin nicht sicher, was in sich geht, aber ich nehme an, es ist etwas falsch mit dem Computer sein könnte selbst (was könnte das sein?), Oder mit diesem speziellen Bit des Codes:KbCheck (?) Unzuverlässig in Psychtoolbox RT Paradigma
Screen('Flip', mainwin);
timeStart = GetSecs;keyIsDown=0; correct=0; rt=0;
while 1
bf = 0; %this variable is irrelevant here, I use it later to break
out of a loop
while (GetSecs - timeStart) < 0.2 %faces are presented briefly, but
%I'm recording responses here anyway, just in case there are some
%fast anticipatory responses - after this loop is over, I keep
%recording RT and button press the exact same way, but with no
%stimulus present
[keyIsDown, secs, keyCode] = KbCheck;
FlushEvents('keyDown');
if keyIsDown
nKeys = sum(keyCode);
if nKeys==1
if keyCode(Key1)||keyCode(Key2)
rt = 1000.*(GetSecs-timeStart);
keypressed=find(keyCode);
Screen('Flip', mainwin);
type = 'T';
bf = 1;
if keyCode(Key1) & targ_pic == 1
correct = 1;
elseif keyCode(Key2) & targ_pic == 0
correct = 1;
end
break;
elseif keyCode(escKey)
ShowCursor; fclose(outfile); Screen('CloseAll');
return
end
keyIsDown=0; keyCode=0;
end
else
keypressed = 0;
end
end
Kann jemand vielleicht Stelle etwas, das kann damit falsch liegen?
Übrigens: Ist das der richtige Weg RT aus PTB zu bekommen? Ich habe diesen Codecode online gefunden, aber ich bin ein wenig unsicher, warum die Variable "secs" nicht verwendet wird.
Beide Computer 10.
Vielen Dank, das sind sehr nützliche Kommentare. Denkst du, dass eines dieser Probleme hinter KbChecks liegt, wenn man bei manchen Versuchen keine Tasten drückt? (Leider kann ich jetzt nicht überprüfen, ob dieses Problem auf diesem Computer gelöst wurde.) Außerdem wollte ich es übersichtlicher machen und habe nur eine Prüfschleife mit dem Stimulus, der nach 200 ms verschwindet, konnte aber nicht sehen einen Weg. Wenn Sie dies mit zwei aufeinander folgenden Schleifen tun, ist das falsch (d. H., Sie können größtenteils zurückkehren - +/- mehr als 20 ms - falsche RT-Schätzungen) oder einfach nicht elegant? – MGy
Ich denke, die Änderungen können das KbCheck-Problem nicht beheben, aber ich bin mir nicht 100% sicher. Wenn Sie eine RT-Schleife im Vergleich zu zwei verwenden, sind zwei Schleifen nicht falsch und sollten keinen Fehler bei den Antwortzeiten verursachen, sondern sind nur komplizierter, weil Sie den RT-Prüfcode zweimal einbeziehen. Um eine Schleife zu verwenden, würden Sie einfach RT überprüfen, bis die Antwortzeit abgelaufen ist (anstatt zu prüfen, ob 200 ms verstrichen sind). Überprüfen Sie dann innerhalb dieser Hauptschleife auch, ob 200 ms verstrichen sind und ob der Stimulus noch auf dem Bildschirm ist. Wenn dies der Fall ist, schalten Sie den Stimulus aus. – DMR