【问题标题】:How to present stimulus for limited amount of time and still record response using Psychtoolbox如何在有限的时间内呈现刺激并仍然使用 Psychtoolbox 记录响应
【发布时间】:2018-08-24 18:51:52
【问题描述】:

对于我的实验,我想向参与者提供刺激和一些指示。然后 2 秒后,我希望刺激消失,但指示保持不变,直到参与者做出反应。参与者应该能够在刺激呈现后立即做出反应,并且在呈现刺激后最多 10 秒内做出反应。响应时间将被记录。

使用我当前的代码,参与者在 2 秒后(刺激消失后)才能做出反应。是否有某种方式让刺激仅出现 2 秒,而说明仍保留在屏幕上,但参与者能够在刺激呈现后立即做出反应?

%Show the instructions and the stimulus   
           Screen('DrawTexture', window, randFaceTexture2);
           DrawFormattedText(window, [instructions1], 'center', 600)

           stimTime = Screen('Flip', window);

           WaitSecs(2);

           %Stimulus disappears but instructions remain 
           DrawFormattedText(window, [instructions1], 'center', 600)
           Screen('Flip', window);

           if GetSecs() <= stimTime + 10
           keyIsDown = 0;
           startTime = GetSecs();
                while 1
                     [keyIsDown, secs, keyCode] = KbCheck;
                     FlushEvents('keyDown');
                     if keyIsDown
                          nKeys = sum(keyCode);
                               if nKeys == 1
                                    if keyCode(yes) || keyCode(no)
                                         reactionTime = 1000*(GetSecs - startTime);
                                         response = KbName(keyCode);
                                         Screen('Flip', window);
                                         break;
                                    elseif keyCode(escKey)
                                         ShowCursor;
                                         fclose(outfile);
                                         Screen('CloseAll');
                                    return 
                                    end 
                                    keyIsDown = 0;
                                    keyCode = 0;
                               end 
                     end 
                end 
           else 
                line3 = 'Sorry you''re out of time';
                DrawFormattedText(window, line3, 'center', 'center');
                Screen('Flip', window);
                keyIsDown = 0;
                rt = 0;
           end

【问题讨论】:

    标签: octave response-time psychtoolbox


    【解决方案1】:

    不要使用WaitSecs() 来控制刺激在屏幕上显示的时间量,而是在经过适当的时间后在响应检查循环中关闭刺激。这是一个 sn-p,它显示了对上述代码的相关更改。我省略了您如何轮询响应的详细信息。顺便说一句,我认为您使用 'if GetSecs()

    % time in seconds for the stimulus to remain onscreen
    timeForStimulus = 2;
    % time for the participant to respond, in seconds
    timeToRespond = 10;
    
    %Show the instructions and the stimulus
    Screen('DrawTexture', window, randFaceTexture2);
    DrawFormattedText(window, [instructions1], 'center', 600)
    
    stimTime = Screen('Flip', window);
    stimOnScreen = 1;
    
    while GetSecs() <= (stimTime + timeToRespond)
        % turn the stimulus off, if the stim is on and the stim time has elapsed
        if (stimOnScreen == 1) && (GetSecs() > (stimTime + timeForStimulus))
            %Stimulus disappears but instructions remain
            DrawFormattedText(window, [instructions1], 'center', 600)
            Screen('Flip', window);
            stimOnScreen = 0;
        end
    
        % poll for keyboard response, etc.
    
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多