內容簡介
PsychToolbox(PTB)是專門用於心理學實驗編製的免費函數庫,它提供瞭對硬件操作的底層接口,能夠開發功能復雜,近乎各個自然科學和社會科學研究領域的實驗程序,與Matlab能夠完美結閤。《PsychToolBox工具箱及Matlab編程實例》是根據作者十幾年的編程經驗寫作而成。全書共分13章,主要介紹瞭Matlab基礎知識、Matlab編程基礎、用於實驗編程的常用Matlab函數、PsychToolbox函數介紹、PTB與OpenGL的結閤、與EyeLink眼動儀的連接等內容。
作者簡介
馮成誌,蘇州大學心理係教授,浙江大學心理係畢業。有著多年的實踐教學經驗和資深的學術研究經驗,主要研究方嚮是人機交互。
目錄
第1章 MATLAB基礎知識
1.1 啓動與退齣
1.2 MATLAB界麵組成
1.3 命令的執行
1.4 獲取幫助信息
第2章 數據類型
2.1 數值型
2.2 字符型
2.3 日期時間型
2.4 單元
2.5 結構
第3章 MATLAB編程基礎
3.1 常數與常量
3.2 變量
3.3 變量類型
3.3.1 局部變量
3.3.2 全局變量
3.3.3 永久變量
3.4 關鍵字
3.5 運算符
3.5.1 算術運算符
3.5.2 關係運算符
3.5.3 邏輯運算符
3.5.4 邏輯運算函數
3.6 過程控製
3.6.1 if條件語句
3.6.2 switch條件語句
3.6.3 for循環語句
3.6.4 while循環語句
3.6.5 try錯誤控製語句
第4章 程序設計
4.1 M文件的建立
4.2 腳本示例
4.3 函數示例
4.4 程序(M文件)的運行
4.5 函數參數的處理方式
4.5.1 默認處理
4.5.2 命令行輸入
4.5.3 對話框設置參數
4.5.4 參數值的記憶與存取
4.5.5 函數的返迴參數
4.5.6 可變數目的輸入/輸齣參數
4.6 函數的類型
4.6.1 主函數
4.6.2 子函數
4.6.3 函數間的調用關係
4.6.4 函數的調用順序
第5章 實驗設計常用MATLAB函數
5.1 矩陣數組操作類函數
5.1.1 數組排序:sort
5.1.2 數組行排序:sortrows
5.1.3 矩陣鏇轉:rot90
5.1.4 矩陣左右/上下翻轉:
fliplr/flipud
5.1.5 矩陣水平/垂直拼接:
horzcat/vertcat
5.1.6 數組的重復:repmat
5.1.7 數組維數變更:reshape
5.1.8 獲取數組維數:size
5.1.9 獲取矩陣長度:length
5.1.10 獲取數組元素數:numel
5.1.11 獲取數組的維度數:ndims
5.1.12 兩個常用矩陣:ones/zeros
5.1.13 生成等間隔嚮量:linspace
5.1.14 生成網格:meshgrid
5.2 判斷類函數
5.2.1 是否為空:isempty
5.2.2 是否為列嚮量:iscolumn
5.2.3 是否為浮點數:isfloat
5.2.4 是否為整數:isinteger
5.2.5 是否為邏輯值:islogical
5.2.6 是否為非數值:isnan
5.2.7 是否無窮大:isinf
5.2.8 是否為行嚮量:isrow
5.2.9 是否為嚮量:isvector
5.2.10 是否為數值:isnumeric
5.2.11 是否相等:isequal
5.2.12 是否為字符:ischar
5.2.13 是否為字母:isletter
5.2.14 是否為空格:isspace
5.2.15 是否為集閤元素:ismember
5.3 字符操作類函數
5.3.1 創建空格:blanks
5.3.2 格式化為字符:sprintf
5.3.3 轉換為大/小寫:upper/lower
5.3.4 去除首尾空格:strtrim
5.3.5 去除尾部空格:deblank
5.3.6 字符替換:strrep
5.3.7 字符查找:findstr/strfind
5.3.8 格式化讀取:sscanf/strread
5.3.9 執行字符錶達式:eval
5.3.10 子串提取:strtok
5.3.11 字符比較:strcmp/strcmpi/strncmp/strncmpi
5.3.12 字符拼接:strcat/strvcat
5.4 隨機操作類函數
5.4.1 介於[0,1]間的均勻分布隨機浮點數:rand
5.4.2 介於[1,n]間的均勻分布隨機整數:randi
5.4.3 正態分布隨機數:randn
5.4.4 設置隨機數種子:seed
5.4.5 通過隨機數流來控製隨機數種子:RandStream
5.4.6 隨機排列:randperm
5.4.7 重置隨機數流:reset
5.4.8 隨機排列數組或矩陣:Shuffle
5.4.9 隨機抽樣:Sample
5.4.10 隨機抽樣:RandSample
5.5 轉換操作類函數
5.5.1 字符轉數值:str2num
5.5.2 字符轉雙精度數:str2double
5.5.3 非負整數轉字符:char
5.5.4 數值轉換字符:num2str
5.5.5 數值轉換單元:num2cell
5.5.6 整數轉換成字符:int2str
5.5.7 結構轉單元:struct2cell
5.5.8 單元轉結構:cell2struct
5.5.9 單元轉矩陣:cell2mat
5.6 路徑操作類函數
5.6.1 獲取MATLAB安裝目錄:matlabroot
5.6.2 獲取當前工作路徑:pwd
5.6.3 改變當前目錄:cd
5.6.4 文件或路徑列錶:dir
5.6.5 顯示當前目錄下的文件列錶:ls
5.6.6 獲取工具箱目錄:toolboxdir
5.6.7 創建目錄:mkdir
5.6.8 刪除目錄:rmdir
5.6.9 垃圾箱控製開關:recycle
5.6.10 獲取係統臨時目錄:tempdir
5.6.11 獲取指定路徑下的文件:
FileFromFolder/FolderFromFolder
5.6.12 添加路徑至搜索路徑中:addpath
5.6.13 從搜索路徑列錶中移除某路徑:rmpath
5.6.14 獲取搜索路徑分隔符:pathsep
5.6.15 獲取文件名分隔符:filesep
5.6.16 拆分文件的路徑和名稱信息:fileparts
5.6.17 組閤全路徑文件名:fullfile
5.7 文件操作類函數
5.7.1 打開文件:fopen
5.7.2 關閉文件:fclose
5.7.3 讀取二進製數據:fread
5.7.4 寫入文件:fwrite
5.7.5 讀取一行:fgetl
5.7.6 讀取一行:fgets
5.7.7 格式化數據讀取:fscanf
5.7.8 格式化數據輸齣:fprintf
5.7.9 文件操作錯誤信息:ferror
5.7.10 文件尾判斷:feof
5.7.11 文件指針定位:fseek
5.7.12 獲取文件指針位置:ftell
5.7.13 文件指針復位:frewind
5.7.14 獲取臨時文件名:tempname
5.7.15 文件或目錄的移動、更名:movefile
5.7.16 文件或目錄復製:copyfile
5.7.17 定位文件或函數:which
5.7.18 檢查文件/目錄/變量等是否存在:exist
5.7.19 將結構數組寫入文件:WriteStructToText
5.7.20 從文本中讀取結構數組:ReadStructsFromText
5.7.21 文件比較:visdiff
5.7.22 顯示文件內容:type
5.7.23 設置/獲取文件或目錄的屬性:fileattrib
第6章 PSYCHTOOLBOX的安裝
6.1 PSYCHTOOLBOX簡介
6.2 PSYCHTOLBOX安裝
6.2.1 係統要求與配置
6.2.2 版本檢查與卸載
6.2.3 安裝新版本的
PSYCHTOOLBOX
第7章 PSYCHTOOLBOX常用數據類型
7.1 顔色
7.2 矩形結構
7.3 窗口句柄
7.4 時間單位
7.5 反應方式
7.6 文本
7.7 圖片
7.8 音頻
7.9 視頻
7.10 鍵盤掃描碼
7.11 鼠標按鈕值
第8章 PSYCHTOOLBOX函數介紹
8.1 窗口操作類函數
8.1.1 創建主頁麵:Open Window
8.1.2 創建緩衝頁麵:Open Offscreen Window
8.1.3 創建紋理緩衝:Make Texture
8.1.4 頁麵切換:Flip
8.1.5 繪製結束指令:Drawing Finished
8.1.6 關閉頁麵:Close
……
前言/序言
PSYCHTOOLBOX(PTB)是免費的可在MATLAB和Gnu/Octave環境下運行的函數庫,能夠使我們很方便地精確控製視覺和聽覺刺激的呈現和同步,並且能夠簡化與用戶的交互操作。PSYCHTOOLBOX的目前版本為3.0,可在MATLAB 7.x或Octave 3.2.x上運行,開發人員將不再針對舊版本進一步開發和提供支持。實驗程序開發的方法之一是利用簡易的開發工具,如E-Prime、Affect、Inquisit、Super-Lab等;一是利用諸如C或Pascal等可以對硬件設備實施底層控製的語言。前者相對而言簡單易學,不需要太多的編程經驗,後者則需要具有豐富的編程經驗和熟悉硬件參數。諸如BASIC、Lisp、MATLAB等高級解釋性語言,缺少對硬件進行精密控製的能力,而PSYCHTOOLBOX則提供瞭從高級語言到硬件底層控製間的接口,可以讀取顯示幀緩存和顔色檢查錶中的信息,可以與垂直行掃描進行同步,支持毫秒級的計時,能夠使用OpenGL開發三維的圖形程序,進行顔色空間轉換(如從RGB到HSL),實現QUEST算法等,它是介於上述兩種開發方法的一種中間狀態,有些實驗軟件係統提供瞭封裝的實驗程序,但在設計和開發新的實驗程序方麵往往捉襟見肘、不夠靈活,或者是費瞭半天的周摺終於實現瞭某個環節(功能),程序的可讀性大大降低。這就需要藉助於MATLAB等高級編程語言來達到特定的實驗目的。
即使你先前使用其他高級編程語言,也有充分的理由讓你轉嚮MATLAB+PTB的學習,MATLAB提供瞭豐富的高級函數進行數學運算和繪圖操作;對於數組(矩陣)和圖像的操作簡易至極,而無須像其他高級語言那樣過度依賴for、while、do、loop等循環來操作。在開發過程中,可以直接在命令窗口中實時查看數據和檢查運算結果,這一點也是其他高級語言不可比擬的。就功能和效率而言,MATLAB+PTB的組閤足以擊敗任何一款實驗開發工具。
對於初學者而言,PTB提供瞭大量的演示程序,通過help PsychDemos可以獲取示例程序列錶,直接在命令窗口中輸入程序名就能夠查看演示效果。藉助於本教程,可以幫助初學者一步步地快速上手。
由於作者水平有限,加之時間倉促,懇請讀者進行批評指正,也歡迎使用本教材的同仁提齣寶貴意見。
馮成誌
2013年5月31日
PsychToolBox工具箱及Matlab編程實例 下載 mobi epub pdf txt 電子書 格式