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');