内容简介
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编程实例 epub pdf mobi txt 电子书 下载 2024
PsychToolBox工具箱及Matlab编程实例 下载 epub mobi pdf txt 电子书 2024