当前位置: 首页 > news >正文

Eprime学习【E-basic语言、心理学实验程序设计】

文章目录

  • Eprime学习
    • 心理学实验程序设计的基本框架
      • 一、实验设计的基本原则
      • 二、实验过程(procedure)与实验列表(list)
      • 三、心理学实验设计的基本模式
      • 四、心理学常用的功能与制作
    • E-basic语言

Eprime学习

心理学实验程序设计的基本框架

心理实验程序设计的”12345“模式化的理论与方法,即“一个过程、两种类型、三大原则、四种模式、五个要素”。

一、实验设计的基本原则

1.结构化原则

  • 心理实验具有结构性,是由一部分一部分的实验单元组成的,每个单元完成独立而又相互联系的功能;
  • 心理实验程序通常由以下10个部分组成:指导语(Instruetion)、注视点(Fixation)、刺激界面(Probe)、反馈界面(Feedback)、刺激间隔(ISI、SOA、Interval)、实验缓冲(BufferInterval)、结语界面(ExpEnd)、掩蔽界面(Mask)。

2.模式化原则

  • 心理学实验对各个基本单元的控制具有一定的模式可循,具体包括“五要素”:
    • 呈现时间(Duration)
      • 呈现时间是指一个界面呈现在被试面前的持续时间,有长至几分钟(如探测界面的等待反应),也有短至几十毫秒(如瞬时记忆实验中刺激呈现界面为50ms)不等。呈现时间有三种形式︰固定时间形式、变化时间形式和无限时间形式。
    • 呈现方式(Mode)
      • 自动消失符合、按键消失被试、反应消失被试、自动+反应
    • 呈现格式(Format)
      • 大小颜色等物理刺激、位置、边框
    • 反应方式(Response)
      • 键盘反应(按压按键、释放按键、输入)、语音反应、外接设备(手柄)、鼠标
    • 数据收集(Data Logging)
      • 反应时(RT:Response Time)、正确与错误(ACC:Accuracy)、被试的反应(RESP:Response)、正确反应键(CRESP:Correct Response)

3.流程化原则

  • E-prime实验程序是依据图示控制放置的顺序,依次呈现的。其中核心程序可能反复呈现。我们将实验过程画成流程图,然后据此设计实验,更加清晰。

二、实验过程(procedure)与实验列表(list)

1.实验过程:

  • 功能:放置图像控件,按顺序运行它们。

2.实验列表:

  • 功能:放置每个试次的实验刺激和条件,按住试设定的方式运行它们。

三、心理学实验设计的基本模式

1.单一实验模式:

  • 核心控件:1个总过程、1个核心过程、1个列表功能
  • 完成一个心理学实验所需的最小架构

在这里插入图片描述

2.并联模式

​ 该模式的实验设计由两个存储不同实验材料及相关控制的List(和两个CEP组成,两个过程上下组成并联关系。如信号检测实验就属并联模式的实验设计。Listl和CEP1完成学习阶段的任务,List2和CEP2完成测试阶段的任务。

在这里插入图片描述

3.串联模式

​ 该模式的实验设计由两个存储不同实验材料及相关控制的List和两个不同核心实验过程CEP组成,两个过程上下组成串联关系。
在这里插入图片描述

4.嵌套模式

​ 该模式至少由二个存储不同实验材料及相关控制的List和一个核心实验过程CEP组成(图中呈现三个),两个存放着不同实验材料和控制的List l和List2相嵌在总的list中,CEP调用List中的材料和控制,而List即调用List 1和List 2的材料与控制。该模式适合较为复杂的实验设计,特别是刺激物的颜色、方位、大小等属性或变量都需要完全随机化结合的实验设计。

在这里插入图片描述

5.平衡模式

​ 该模式至少由三个存储不同实验材料及相关控制的List和两个核心实验过程CEP组成。Listl存放各种条件信息;List2存放运行信息,List2I和List 22(还可以有List 23、List24等多个List)存放各种条件的刺激,并相嵌在ILisl2中;核心实验过程CEP2调用选中条件的材料和控制。
在这里插入图片描述

四、心理学常用的功能与制作

1.指导语

  • 作用:告诉被试实验是怎样进行,被试应该怎样做出反应。
  • 实验设计
    • 呈现时间
      • 无限时间,读懂按空格键开始实验
    • 呈现方式
      • 按键消失
    • 格式
      • 文字或图片
  • 注意:语气温柔、轻和
    • 如:同学您好,欢迎您参加本次实验。本次实验是xxxx。在本次实验中,您将会看到xxxx,看到xxx做出按键选择。 如果您明白了本次实验流程,请您按空格键开始实验!

2.注视点

十 或 *

  • 作用:
    • 通过醒目的一个符号,来提醒被试集中精神,注视屏幕,不要分散注意力
  • 实验设计
    • 时间:500-800ms
    • 方式:自动消失
    • 格式

3.刺激界面

  • 作用:呈现实验材料
  • 实验设计:
    • 时间:根据实验具体设定
    • 方式:自动消失或按键消失
    • 格式

4.探测界面(可能与刺激界面合一)

  • 作用:用来探测被试的反应和收集反应的数据
  • 实验设计:
    • 时间:无限时间
    • 方式:具体实验要求(鼠标或键盘)
    • 格式

5.探测线索(未必有)

  • 作用:用来提示被试让他有一个反应的倾向的准备。接下来的界面需要被试根据指导语的要求来进行按键反应,要求被试做好充分的心理准备;去除习惯按键;

6.反馈(一般有)

  • 作用: 用来对被试的反应做出正确或错误的反馈,对错误的反馈做出一个提醒或解释;记录被试的反应时间;累积正确率,给出被试练习或实验开始之后累积的正确率,让被试知道自己对实验总体把握程度以及对实验的配合程度。
  • 时间:1000ms~2000ms
  • 呈现方式:自动消失

7.刺激间隔(ISI、SOA、Intervel)一定有

  • 作用:按照实验的要求,用来延迟下一个界面或下一个刺激的出现;

在这里插入图片描述

8.实验缓冲(一定有)

  • 作用:让被试休息

9.掩蔽页面(未必有)

10.结束语(一定有)

在这里插入图片描述

E-basic语言

1.常量:取固定值的量

  • 数值型:整数、实数(小数表示,科学计数法)
  • 字符型:双引号内,<=255个字符的符号串

2.变量:取值变化的量

  • 命名变量:
    • 25个英文字母的大写或小写起头,后接字母或数字,最大80个字符;
    • C是软件命令符,不能作为变量名;
    • 不能以“FN”开头,不能以end、procedure等软件预设名称为单独变量名,但可作为一部分;
    • 空格、Shift+数字、标点符号、括号、运算符不能作为变量名;
    • 不能重名;
  • 变量的作用域和生命周期:
    • 局部变量:可以指定作用域 Dim
    • 全局变量:默认作用于全部实验过程 Global、Public
  • 变量的定义:
    • 在总过程中定义Dim、Global、Public变量名as类型;
    • 在局部过程中定义Dim变量名as类型;
    • 未定义变量的错误提示 variable not defined;
    • 定义多个变量加英文“,”

3.常值变量:取固定值的变量

4.数值变量:

  • 整数变量:
    • 可以被赋值为整数的变量(integer),以%标识实数变量;
    • 可以被赋值为实数的变量(single),以!标识双精度变量;
    • 占用两倍内存空间的实数变量(Double),以#标识;
    • 字符变量(String),以$ 标识;

5.算符与内置函数:

  • ±*/
  • MOD求余
  • ()
  • < > >= <= <>(不等于)
  • Random(n,m) 在n到m随机选一个整数
  • ABS(x) 绝对值
  • SQR(x) 算术平方根
  • INT(x) 不大于x的最大整数
  • FIX(x) 截整
  • RND(x) 产生>0但<1的随机数(实数型)
  • LEN(字符串) :字符串长度
  • STR$(表达式):将数值或表达式转换为字符串,包含标点和空格
  • VAL(字符串表达式):将字符串转换为数值
  • LEFT(字符串,n):从左取字符串中的n个连续字符
  • RIGHT(字 符串,n):从右取字符串中的n个连续字符
  • MID(字符串 ,n,m)从第n个字符开始,向右取m个字符,为空则全取。
  • INSTR(n,字符串1,字符串2):从字符串1左数第n个字符开始,查找字符串2在字符串1中第一次出现的位置;n为空则从第一个字符开始查找,找不到的话INSTR=0;
  • STRING$(n,“字符”)输入字符,得到相应的字符串;
    • String$(4,“a”) = “aaaa”
  • 逻辑运算符:AND、OR、NOT

6.选择语句

if ......then
......
Else
......
End if

7.inline设置对象的值

  • 对象名.属性名< 条件 > word.text=“a”
  • Pic.acc>1
  • Pic.duration=500

8.inline获取对象的值

  • 对象.属性=值/变量
  • Pic.acc=a
  • Pic.duration=b

9.插入休息

  • 作用:实验完成一定次数后自动进入休息页面
  • A.定义变量;B.计数;C.求余;D.判定;E.跳转

10.随时结束

  • 作用:随时结束实验
  • A.定义变量(全局);B.判定;C.跳转

11.颜色变换

  • 作用:根据被试反应的正误,选择刺激呈现的颜色;
  • A.判定;B.指定颜色
if zimu.acc=0 then
zimu.forecolor=ccolor("green")
else
zimu.forecolor=ccolor("yellow")
end if

12.随机间距

  • 作用:时间间隔随机化,避免预期
  • A.inline设置duration为随机函数的取值

13.常用语句

  • InputBox(“输入提示”,“标题”,“X坐标”,“Y坐标”) 作用:输入包括汉字在内的信息;
  • MsgBox(“提示信息”,“标题”) 作用:显示上一次输入的信息,作为反馈
  • AskBox(“输入提示”,“标题”) 作用:同inputbox
  • Debug.Print"字符",变量,数字,标点,公司等输出打印结果
  • Format(表达式,“格式”) 作用:将表达式转换为指定的格式

14.循环语句

  • For语句是循环的起点,称为"循环起始语句"或"循环说明语句",由它决定执行几次循环,从循环初值开始,到超过循环终值结束;
  • Next语句是"循环终端语句",执行到此语句时,循环变量就取下一个值,即将循环变量加一个步长值,然后与终值比较,判断和决定是否进入下一次循环;
  • 循环变量可以用任一简单变量表示。For后的循环变量和Next后的循环变量是一致的;
  • 初值、终值和步长值可以是常数,或已被赋值的变量,也可以是算术表达式。步长为1时,可以省略不写。步长值可以是正数,此时为递增循环;也可以为负数,此时为递减循环;
  • For和Next必须成对出现;
  • 单层循环时,Next语句的循环变量可以省略。多重嵌套循环时,Next语句的循环变量不能省,其循环变量与For的循环变量必须按层次一一对应;

(1)For…Next循环

在这里插入图片描述

(2)Do While 循环

在这里插入图片描述

(3)Do Until<…Loopx循环

在这里插入图片描述

(4)多重(嵌套)循环

15.循环结构在心理学实验设计中的作用

  • 涉及累积过程的实验累积并记录多次输入的值
  • 涉及动态的实验
  • 利用循环语句反复播放动态内容,直到被试做出反应

16.选择结构

(1)if…then结构

在这里插入图片描述

(2)if…then…else…end if

在这里插入图片描述

(3)if…then…else if …end if

在这里插入图片描述

If probe.RT < 400 then
Msgbox "你反应慢了"
else if probe.RT > 1200 then
Msgbox "反应慢了"
Else
Msgbox "反应很好"
End if

(4)Select Case (表达式) 结构

在这里插入图片描述

dim i,sum1,sum2,sum3 as integer
for i = 1 to 20
select case (i mod 3)
case 1sum1=sum1+i
case 2 sum2=sum2+i
case 3sum3=sum3+i
end select
next
debug.print"1-203整除余1的数之和为:" &sum1
debug.print"1-203整除余2的数之和为:" &sum2
debug.print"1-203整除余3的数之和为:" &sum3
msgbox"yun xing wan bi"

17.数组

(1)命名规则:

  • 数组名称与单变量命名规则一致
  • 下标必须用英文状态的括号
  • 下标可以是常量,变量或表达式
  • 下标不能非负
  • 一个矩阵数组占据一片连续的存储单元

在这里插入图片描述

相关文章:

  • 视频回放 | DolphinDB 2024 年度峰会主会场演讲精彩回顾
  • matplotlib画动态图
  • 【Unity踩坑】创建新项目后提示编译错误要进入安全模式
  • Linux - Linux安装部署Maven以及环境变量配置
  • 测试开发基础——测试用例的设计
  • 信创实践(3):基于x2openEuler将CentOS升级成openEuler,享受其带来的创新和安全特性
  • 解决 webpack 配置 sass-loader后报错,无法正常build
  • EasyExcel 学习之 导出 “类型及精度问题”
  • requests请求设置超时时间python
  • Debezium系列之:大规模应用debezium server采集数据库,从每个Debezium Server中导出JMX采集指标
  • 怎么利用接口发送图文彩信
  • 所有即将登陆iPhone 16的Apple智能功能以及预期发布时间
  • 监听键盘事件
  • 每日一练:回文链表
  • 【C#跨平台开发详解】C#跨平台开发技术之.NET Core基础学习及快速入门
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android单元测试 - 几个重要问题
  • Android优雅地处理按钮重复点击
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • java第三方包学习之lombok
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • jquery ajax学习笔记
  • overflow: hidden IE7无效
  • rabbitmq延迟消息示例
  • React16时代,该用什么姿势写 React ?
  • Redis字符串类型内部编码剖析
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 基于组件的设计工作流与界面抽象
  • 解析带emoji和链接的聊天系统消息
  • 码农张的Bug人生 - 初来乍到
  • 实战|智能家居行业移动应用性能分析
  • 使用 Docker 部署 Spring Boot项目
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​TypeScript都不会用,也敢说会前端?
  • ​字​节​一​面​
  • #### go map 底层结构 ####
  • #pragma pack(1)
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (003)SlickEdit Unity的补全
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Java入门)抽象类,接口,内部类
  • (Ruby)Ubuntu12.04安装Rails环境
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)Thymeleaf用法——Thymeleaf简介
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)重识new
  • . NET自动找可写目录
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比