admin 管理员组

文章数量: 887021


2024年2月25日发(作者:华为中文编程语言 e语言)

EPrime入门详细教程

王一峰

因时间仓促,水平有限,本教程难免会有不足甚至错误,希望各位同道提出批评意见,大家共同进步!

E-Prime跟office一样,是一个程序包。就像做文档用Word,做幻灯片用PPT一样,写程序的时候就用E-Studio,运行程序可以用E-Run或E-Studio,整理数据用E-DataAid,合并数据用E-Merge,恢复未完成或损坏的数据用E-Recovery(用TXT文件生成edat文件)。

我们主要用E-Prime来编写和运行程序。首先打开E-Studio,选择新建一个空白实验。

然后点击Structure里的SessionProc(这个很容易找到),会弹出SessionProc的界面,就是一条左绿右红的流程线,这条线上要按照时间先后顺序呈现你实验的整个流程。

SessionProc这条线上一般包含三个基本的部分。首先是实验指导语(introduction),你可以用一个图片

或文本来写。对于1.1版本的与汉语兼容性不好,所以尽量用图片呈现。2.0版本就可以用文本。同样,在实验的最后会有一个结束语(endexperiment),跟指导语的设置基本相同。接下来就是最重要的实验程序(experiment)部分了,这部分用一个list呈现。

心理学实验一般是被试读完指导语后按键或通过别的方式开始实验,也许有练习,也许没有。实验结束之后程序自动跳出,呈现结束语(一些感谢的话……)。我们先从指导语开始看,双击introduction,弹出它的对话框,然后点击左上角的属性按钮,出现属性对话框。

该对话框包含等子目录。在General中首先需要你输入该控件所引用的文件(图片)名。如果只有一幅图片,可以直接输入图片名.后缀,比如。如果有很多图片,并且你把它们放在了list里面,可以通过调用list属性的方法引用。比如list里面有picture这一列,里面放了你的所有图片材料,在此,就可以输入[picture].bmp。当然,如果你不怕麻烦,可以在list里面输入所有文件的“名称.后缀”,在此只需要填写[picture]。后缀是必须有的,并且只能有一次。如果还是感觉没把握,可以点击右边的,在文件夹中搜索就行,点击打开后,文件就直接调用过来了。

记住,请把你的所有实验材料跟该程序放在同一个文件夹里,程序中的所有引用都会在该文件夹中调用。

General的左边是调整文件的镜像方向、拉伸、位置等空间属性的;右边是调整颜色属性的。如果需要,可以自己尝试调节一下每个选项,看有什么效果。我们经常用的选项是,为了让被试眼睛更舒服,我们会调节屏幕呈现柔和的颜色,或者根据实验目的选择必要的颜色。颜色设置有三种方法:(1)从下拉菜单中选择;(2)直接输入颜色名称,如red;(3)输入RGB值并用英文逗号隔开,比如85,123,205。

Frame中的选项用于调节材料的大小、位置、边框等信息。

Duration/Input是我们最常用的菜单,刺激呈现的很多重要参数都在此设置。其中,Duration的选择同样有三种方式:(1)从下拉菜单选择;(2)自己输入,如33;(3)从list里面调用,如[time]。

Timing mode可以根据需要选择,ERP研究常用Event模式,保证当前刺激与发送trigger的时间一致,是严格的事件相关;fMRI研究常用Cumulative模式,如果上一个刺激时间有延迟,则当前刺激会提前呈现,可以保证当前实际运行时间与程序预定时间一致。

PreRelease如果需要的话,一般设为100ms,即提前100ms让下一刺激进入缓存,保证及时呈现。

Data Logging可以选择你记录数据的项目,也可以在Logging菜单下查看和选择。

接下来选择输入设备,常用的是键盘。选择后进行response设置。

Allowable中设置你的按键,对于单个字母和数字直接输入即可,也可以同时输入多个按键,如“12345”,之间不用逗号。一些在键盘上标注了多个字母的键需要用大括号括起来,比如任意键用{ANY},空格键用{SPACE},回车键用{ENTER}。如果你想在不同trial中设置不同的按键,可以在list中单独写成一列,然后在此处引用,引用格式仍然是方括号,如[key]。

Correct中填写你规定的正确反应,如fj,1,[C]等,也可以不填。

注意:用笔记本电脑运行程序的时候,按键可能会出现问题。一部分字母可以用作数字键,这时如果设置按键是某个字母,有可能记录不到反应。因为该键此时表示的可能是数字,这个检查一下Fn键就可以。台式机一般不会出现这个问题。

Time limit是关于呈现时间的设置方式。如果选择same as duration,则强制使用你在Duration中规定的时间。选择infinite则时间不限,你可以在end action中设置结束的方式。当然也可以在下拉菜单中选择特定的时间以结束刺激或者自己输入时间,如225,或者引用list中的时间限制,如[ltime]。

End action选择none,则会根据你在上面设定的时间自动结束,如果选择terminate则在被试反应后结束,选择jump则跳出。

Duration、response、Time limit、End action配合使用可以达到多种效果。

如有更加复杂的要求,可以尝试在Advanced properties中设置,比如设置MAX Count为2,即可以按两个键反应,如输入中添加display控件后可以让被试在浮动对话框中输入答案。对话框的位置、大小、字号等可在edit中设置,如有需要,可以自己尝试。

Text display的设置方式与image display相似。

最关键的部分是list里面的设置。这里包含被试实验操作的整个流程,建议以最简单的方式呈现。一般一个trial由一行构成,里面可以包含任何可以调用的信息。

双击打开list的界面,会看到第一行的工具栏。从左到右依次是增加一行、增加多行、增加一个属性、增加多个属性、summary、list的属性、删除行和删除属性。一般常用的是增加多行(至你所需的trial数)和增加多个属性(包含你所需调用的所有属性)。

Summary的内容会呈现在工具栏下方的空白处,方便及时查看运行框架。其中sample的数量就是行数,1个cycle就是整个list运行一个循环。注意观察上图中sample、cycle、weight的关系及右侧structure框中随list设置而发生的变化。

List的属性也包含几个内容:general中可以设置运行方式,一般选择embedded即可,就是直接运行本list中嵌入的内容。也可以调用你已经建立的file,或自己写的脚本(script)。

Selection中可选择运行顺序。Sequential即按ID顺序呈现list里面的内容,random是随机顺序呈现,random

with replacement类似于放回抽样,有可能两次抽到同一行。Counterbalance、offset、permutation均是按照特定顺序呈现,如可以平衡被试、利手、分组等,在右侧选择相应的项目即可。

所有控件的属性也可以在属性窗口查看或设置,如下图。

List主体的第一行是属性名称,其中weight栏下可以为每一行赋值,表示该行在程序运行时执行的次数。

Nested栏下可以输入一个名称,输入后会出现一个新的list,里面可以输入你需要的材料,这样当程序运行到每一行的时候都可以从嵌套的list中调用材料,只需将嵌套list的选择方式设为random,即可在每个trial中随机调用你所有的材料。这一功能非常有用。当然,如果你在每个trial中调用的材料都是固定的,就不须nested了。

然后是procedure,在下面输入一个名称,就会出现一个新的程序流程。你可以在此流程条上放置一个trial中需要的所有控件。一个list中可以包含多个procedure,比如一部分需要反应,一部分不需要反应,就可以设置两个procedure,分别记录相应的信息。

一个procedure包含一个trial运行所需要的所有流程,按时间顺序排列。各控件的设置可以参考前面imagedisplay的设置。

Feedback控件的设置有特殊性,它包含多个项目,每个项目可以分别设置,但都受到feedback属性的限制。工具栏中提供了文本、图片、声音等不同的反馈方式,可以对不同反应作出不同的反馈。Correct、incorrect、noresponse等只包含基本设置,总体属性的设置要先选中feedback,然后点击右侧的属性按钮。

General中可以输入或选中需要对哪个控件的信息进行反馈,以及要收集哪些信息。Format中可以设置反馈的形式,如百分数、整数等。Duration/input中可以设置feedback控件的持续时间、结束方式等。后面的设置参考imagedisplay的设置。

对于随机时间的设置需要在inline中进行。如要控制prime的呈现时间在50~500ms中随机,在其前放置一个inline,用下面的语句来控制:

Set on=random(50,500)

与属性中的duration/input设置相比,程序会优先调用inline中的设置。

另外,很多过程可以用inline来控制。比如,运行n个trial后进行休息、计算正确率等。复杂的控制语句可以到网上搜索。

当然,要完成实验还需要收集被试信息,可以在structure中双击experiment object。或者在主窗口的edit菜单下选择。

在startup info中选择或添加需要收集的信息。在devices中添加和编辑硬件设备。比如,选中display,点击edit,设置其相应属性。有时图片不能调用,也需要查看此处的属性跟图片是否相符。

Eprime的界面是结构化的,你可以在structure窗口中查看整个实验的流程。在编写程序前,一定要对自己的实验流程有一个细致的安排,也可以写在纸上,设计过程中需要什么控件,直接拖到相应的位置就可以。

如果要在另一个位置调用一个设置完全相同的控件,只需要用鼠标拖动到新位置,就可完成复制。此时,修改一个位置,另一个位置的控件中所有的参数都会同步改动。如果不想同步改动的话,可以按住Ctrl键

再拖动,可以看到新的控件名称已经改变了,他们已经是两个独立的控件,可以单独修改。

Eprime要跟ERP或fMRI,往往需要向相应设备发送trigger或打mark。首先在view菜单中打开script窗口。在user对话框中开端口,对每个需要打mark的控件进行设定,即

ignalEnabled = True

ignalPort = %26H378

ignalData = %26H02

SignalEnabled=True

这一组语句,每个需要打mark的控件都要写一组。比如要对probe打mark,即写成ignal……。

其他一些语句可以到心心水滴论坛上面搜索,或者到主窗口的help菜单下查找。程序编制过程中的所有问题也都可以到help中寻找答案。


本文标签: 设置 需要 属性 选择 时间