Matlab:向受试者显示屏幕的标准



我正在Matlab中进行一个心理学实验,其中带有问题的屏幕将呈现给受试者。屏幕还将收集和显示受试者的回答。例如:屏幕显示"2+3",还显示参与者类型(例如 99999(,直到他们按 Enter 键。

目标:如果参与者尚未按回车键,则让它在 16 秒后停止显示问题。(也就是说,如果时间 = 16 秒或主体按 Enter 键,则停止显示屏幕。

问题围绕以下代码展开:

    While CurrentTime<TimeOut
    respond=GetChar() <-(Waits till user press enter)
    end

因此,无论我们在捕获响应语句之前/之后添加什么语句,都不会执行。

有关如何解决此问题的任何帮助将不胜感激!谢谢。

这里有一个例子,我举了一个椭圆形作为例子,你显然可以用你的任何刺激来代替它。Enter 和 Return 是单独的键,我不确定您要查找哪个键,因此在示例中,循环会查找它们。

%% include at top of experiment / block
waitForResponseSeconds = 16; % number of second to wait for a response
enterKey = KbName('enter'); % numeric code for enter key
returnKeys = KbName('return'); % numeric code for return key(s)
responseKeys = [enterKey returnKeys];
wPtr = Screen('OpenWindow', 0, 0, [0 0 400 400]);

%% within the trial loop:
hasResponded = 0;
% present the stimulus (here the window pointer is called wPtr, you may
% need to adjust this depending on what you named the window pointer.
Screen('FillOval', wPtr, [100 0 100], [0 0 400 400]);
[~, Onset] = Screen('Flip', wPtr);

while ~hasResponded && ((GetSecs - Onset) <= waitForResponseSeconds) 
    [keyIsDown, secs, keyCode] = KbCheck;
    if any(keyCode(responseKeys))
        rt = 1000.*(secs-Onset); % get response time
        hasResponded = 1;
    end
    % Wait 1 ms before checking  again to prevent
    % overload of the machine at elevated priority
    WaitSecs(0.001);
end
%% end of exp
sca;

相关内容

  • 没有找到相关文章

最新更新