如何让psychtoolbox等待按键响应但继续如果它没有收到一分之一设置时间吗

65(30天)
我想代码一个实验中,参与者必须取向的判断(与键盘更顺时针或逆时针)。我想代码,如果他们不内作出回应,说2秒的代码还在继续。
我试过诸如WaitSecs (2) < 2;[秒,键码,deltaSecs] = KbWait ();结束
但这并不保存变量以外的使用while循环。提前谢谢!

接受的答案

米卡尔Duta
米卡尔Duta 2016年11月5日
编辑:米卡尔Duta 2016年11月5日
有一些遗漏的细节规范给定的问题,所以我要做以下假设:
  • 项目预计只有一个按键,假设一个按向左或向右箭头键
  • 两项后立即响应给出等待反应停止,时间使反应是反应时间
下面的代码应该实现您的需求根据上述假设
%提高代码的可移植性acorss操作系统
KbName (“UnifyKeyNames”);
%指定键的名称对研究的兴趣
activeKeys = [KbName (“LeftArrow”)KbName (“RightArrow”));
%设置值最大时间等待响应(以秒为单位)
t2wait = 2;
%如果等待按在一个循环中,
%然后下面两个命令应该在循环开始之前
%限制键键盘输入我们想要的钥匙
RestrictKeysForKbCheck (activeKeys);
%抑制回波为按键命令行
ListenChar (2);
%的时间戳开始等待输入的关键
%我们可以评估超时时间和反应时间
% tStart也可以发病的时间戳的刺激,
%例如VBLTimestamp返回的“翻转”
tStart = GetSecs;
%重复,直到一个有效的键被按下或我们时间
timedout = false;
%负责初始化字段变量
%,如果包含细节响应
负责。RT =南;负责。键码= [];负责。keyName = [];
~ timedout,
%检查是否一个键被按下时
%只有activeKeys中指定键被认为是有效的
[keyIsDown, keyTime键码]= KbCheck;
如果(keyIsDown),打破;结束
如果((keyTime - tStart) > t2wait), timedout = true;结束
结束
%代码键存储按时间和反应时间
如果(~ timedout)
负责。RT = keyTime - tStart;
负责。键码=键码;
负责。keyName = KbName (rsp.keyCode);
结束
%如果等待按在一个循环中,
%然后下面两个命令应该在循环结束之后
%重置所有键的键盘输入检查
RestrictKeysForKbCheck;
%重新启用回声为按键命令行
%如果代码崩溃之前达到这一点
% ctrl - c将使再能键盘输入
ListenChar (1)
6个评论
Edan丹尼尔
Edan丹尼尔 2023年5月18日
编辑:Edan丹尼尔 2023年5月18日
这是初始化反应时间(RT)领域的反应(负责)结构。也就是说,设置,直到反应时间记录,负责。RT =(南)。如果检测到按键,该字段应该更新如下(见下面几行线的问题在里面的例子)
负责。RT = keyTime - tStart;
即取代南记录反应时间:开始时间之间的差异,按键的时间。如果没有检测到按键时,该字段将不会更新,将举行“NaN”表示没有反应时间记录。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!