2016-12-24 17 views
0
while 1 

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

여기 내 샘플 코드입니다. Stroop Task에서 작업 중이며, 반응 시간을 예상하고 있습니다. 반응 시간은 자극 제시로 시작하여 키를 눌러 종료합니다. 나는 위의 코드를 사용하여 전체 키보드를 억누르기 위해 1-2-3-4의 숫자를 기대합니다. 그러나 1-2-3-4가 아니라 모든 키를 누를 수 있습니다. 나는 많은 시간을 시험해 보았습니다. 때로는 그렇지 않은 경우가 있습니다. 나는 이유를 정말로 이해하지 못한다.MATLAB의 PTB에서 getchar를 사용하여

답변

1

GetChar() 함수는 키 누르기를 기다리거나 대기열에서 이전에 누른 키를 검색합니다 (http://docs.psychtoolbox.org/GetChar). 최근에 언론이 아닌 경우에도 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('[email protected]'), 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 
:

다음 코드는 응답 시간의 키보드를 폴링하는 데 사용할 수 있습니다