停止程序,等待特定的键盘输入,然后在Psychtoolbox MATLAB中继续编程?

时间:2014-07-01 19:21:15

标签: matlab psychtoolbox

我很难弄清楚KbCheck功能如何工作以及如何使用它来暂停我的程序正在执行的操作,等待按下空格键然后继续使用该程序。

KbCheck的文件有:

  

[keyIsDown,secs,keyCode,deltaSecs] = KbCheck([deviceNumber])

我知道keyIsDown将一直返回0,直到用户按任意键,之后它将返回1.但是,如何使用KbCheck和while循环来执行上述操作?

2 个答案:

答案 0 :(得分:2)

KbCheck只需在您拨打电话时进行一次检查。我认为你想要的是KbWait,它会停止执行程序,直到按下按键:

[secs, keyCode, deltaSecs] = KbWait([deviceNumber][, forWhat=0][, untilTime=inf])

PsychToolbox中有许多键盘检查功能,因此可能值得检查它们是否更适合您的特定需求,例如:

  • KbPressWait
  • KbStrokeWait
  • KbReleaseWait

答案 1 :(得分:0)

如果您打算使用KbWait(),您应该明确地知道您有时间会让您感到烦恼。文档说最多5毫秒,这可能会或可能不会在分析过程中引起一些问题。

这就是文档所说的:

CAUTION: KbWait periodically checks the keyboard. After each failed check
(ie. no change in keyboard state) it will wait for 5 msecs before the
next check. This is done to reduce the load on your system, and it is
important to do so. However if you want to measure reaction times this is
clearly not what you want, as it adds up to 5 msecs extra uncertainty to
all measurements!

看一下解释它的演示:

edit KbDemo.m