在MATLAB中使用PTB中的GetChar


    while 1
    ch = GetChar
    KbWait
    if (ch>48) && (ch<53) 
         trial(j).RT =  GetSecs - startTime ;
       break;
    end
    end

这是我的示例代码,我正在从事一项stroop任务,我希望能够gatjer反应时间。反应时间始于刺激呈现,并以钥匙按下结束。我使用上面的代码来替代整个键盘,预计数字为1-2-3-4。但是,有时所有键都可以按下,而不仅仅是1-2-3-4。我已经尝试过很多次,有时会抑制钥匙,有时却没有。我真的不明白原因。

getchar()函数等待按键,或从队列中检索以前按下的密钥:http://docs.psychtoolbox.org/getchar。可能发生的事情是,即使他们不是最近的出版社,您也在队列中读取了以前的按键。

但是,PsychToolBox开发人员建议不要使用GetChar()函数来收集响应时间。这是由于getchar()与其他功能(例如kbcheck()的时间预期。

以下片段可用于在响应时间内对键盘进行轮询:

% find the keyscan codes for the first four number keys
% (top of the keyboard keys, number pad keys have different codes)
keysToWaitFor = [KbName('!1'), KbName('2@'), KbName('3#'), KbName('4$')];
responded = 0;
while responded == 0
    [tmp,KeyTime,KeyCode] = KbCheck(-3);
    if KeyCode(keysToWaitFor)
        trial(j).RT =  KeyTime - startTime;
        responded = 1;
    end
    % time between iterations of KbCheck loop
    WaitSecs(0.001);
end

相关内容

  • 没有找到相关文章

最新更新