MATLAB 编程/Psychtoolbox/示例代码
外观
Back to MATLAB Programming/Psychtoolbox
- Imageviewer - 在屏幕上显示图像 (OSX)
- OpenManyScreens - 在所有连接的显示器上打开一个窗口 (OSX)
- xsearch - 通用视觉搜索代码 (OS9/WIN)
- ImgShow - 从磁盘加载一系列图像并以随机顺序显示它们指定的时间段 (OS9/WIN)
- eyelink 工具箱 - 将 sr-research eyelink 视频眼动仪与跨平台 opengl psychtoolbox 一起使用 (OSX/win)
- MATLAB 编程/Psychtoolbox/版本独立脚本 - 允许您编写在所有版本的 psychtoolbox 上运行的程序的脚本。
- 一个函数,它接受一个所需键的列表,并返回其中被按下且更靠近传递的列表前端的键的编号。它忽略其他按键。
function keyPressed = getKeys(keysWanted) % keysWanted is a matrix list of keys you are % waiting for e.g, [124 125 kbName('space')] FlushEvents('keydown'); success = 0; while success == 0 pressed = 0; while pressed == 0 [pressed, secs, kbData] = KbCheck; end; for i = 1:length(keysWanted) if kbData(keysWanted(i)) == 1 success = 1; keyPressed = keysWanted(i); FlushEvents('keydown'); break; end; end; FlushEvents('keydown'); end;
- 等待一个按键,两秒后继续
tEnd=GetSecs+2; while ~KbCheck & GetSecs<tEnd % Sleep one millisecond after each check, so we don't % overload the system in Rush or Priority > 0 WaitSecs(0.001); end
- 将命令窗口置于最前面。即使它不会出现在由 Screen 打开的窗口前面,包含它也是有用的,因为它允许您键入例如 Screen('Closeall') 来关闭已崩溃程序的窗口
commandwindow;
- 问题: KbCheck 似乎不会等待按键,比预期更早退出循环,并继续返回按键。解决方案: 确保首先等待任何按键释放。例如
commandwindow; touch=1; while touch==1 [touch, secs, keycode] = KbCheck; % Sleep one millisecond after each check, so we don't % overload the system in Rush or Priority > 0 WaitSecs(0.001); end touch = 0; i=0; while ~touch % Sleep one millisecond after each check, so we don't % overload the system in Rush or Priority > 0 WaitSecs(0.001); [touch, secs, keycode] = KbCheck; fprintf('.'); if i==50 fprintf('\n'); i=0; end i=i+1; end clc; % clear command window, removing any typed characters fprintf('\ntouch down\n\n');