美文网首页
E-Prime 软件中常用的 inline 语句

E-Prime 软件中常用的 inline 语句

作者: 茗创科技 | 来源:发表于2022-03-31 16:10 被阅读0次

文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注。

E-prime 是一款基于 VB 语言进行编程的软件,与其他心理学常用编程软件(matlab,python,R 等)不同的是,E-prime 并不是使用纯代码的一款软件,而是以图形界面(GUI)呈现,可实现代码和 GUI 的结合,这就大大降低了其使用门槛。这里主要分享 E-Prime 中一些常用的 inline 语句。inline 语句要和 E-Prime 中的 label 控件搭配使用,感兴趣的小伙伴可以看看这篇文章干货分享|E-prime 3入门手册,有非常详细的步骤。

打开端口命令的语句

Stimulus.OnsetSignalEnabled = True(表示打开控件Stimulus的端口);

Stimulus.OnsetSignalPort = &H378(表示控件Stimulus的端口为H378);

Stimulus.OffsetSignalEnabled = True (表示关闭控件Stimulus的端口);

Stimulus.OffsetSignalPort = &H378(表示关闭控件Stimulus的端口为H378);

或者,用以下语句:

Stimulus.OnsetSignalData = c.GetAttrib("ciji")表示向ERPs发送控件Stimulus的刺激信号(Mark),这个刺激信号需从List控件中的“ciji”进行调用。

设计刺激界面或空屏随机呈现的语句

①设计刺激界面随机呈现,且随机呈现时间为500-1000ms,可用以下语句:

set Stimulus.duration= random (500,1000)

②设计空屏随机呈现(一般trial之间会设置一个随机空屏,有助于防止实验过程中出现期待效应),且随机呈现时间为800-1000ms,可用以下语句:

set blank.duration= random (800,1000)

注:这里的 Stimulus 或 blank 是指控件名称(可自定义名称,inline语句中的控件名称须与你想要随机的控件名称一致)。

选择语句

选择语句通常会结合 if 命令来使用,例如,根据被试判断自己是否还需要再次练习或进入正式实验、练习时的正确反应的概率达到指定要求跳转至正式实验等等,就需要用到 if 语句来实现。(Mark 必须用数字,且为 256 以内的自然数,大于 256 的数字将无法识别)

①实验过程中一般会给被试一些练习试次,让被试了解实验过程中如何进行按键反应。若被试准备好开始正式实验,要求按 q 键,若继续练习,则按p键。

If Practice.Resp = "p" Then

    GoTo label1

Else

    GoTo label2

End If

②若练习过程中的正确率高于 90%,则开始正式实验,否则继续练习。

If (N/Practice.Size) < 0.90 Then

    N=0

    GoTo label1

Else

    GoTo label2

End If

③若练习过程中的正确率高于 90%,且反应时小于 500 毫秒,则开始正式实验,否则继续练习。

MeanRt=TotalRt/N

CorrectPercent=CorrectN/N*100

If CorrectPercent>90 And MeanRt<500 Then

  GoTo label2

Else

  GoTo label1

End If

④若被试的反应为“F”或“J” ,则分别 Mark 为“1”或“2” ;没有作出反应则 Mark 为“3”。

If Answer.resp = "F" Then

writePort &H378,1

ElseIf Answer.resp = "J" Then

writePort &H378,2

Else writePort &H378,3

End If

⑤若被试的反应为“1”或“2” ,则分别 Mark 为“1”或“2” ;没有作出反应则 Mark 为“3”。

If Answer.resp="1" Or Answer.resp="2" Then

WritePort &H378,c.GetAttrib("Answer.resp")

Else WritePort &H378,3

End If

被试中场休息语句

实验 block 比较多的话,一定要让被试进行适当的休息。否则有可能会因为疲劳效应等因素导致实验的准确性受到影响。中场休息可以用 GUI 界面的控件实现,也可以用 inline 语句实现。

Dim N As Integer

relax.duration=0

relax.text=""

N=N+1

If N=60 Then

relax.duration=CLng("-1")

relax.text= "休息一下吧,按空格键继续!"

N=0

End If

注:Dim N As Integer 表示定义一个正数变量,用于计算试次数。如果要在多少个试次后进行中场休息,就需要提前定义一个变量,便于随着试次数累加计数。relax 是指休息控件,该控件里面无需填写内容,所以 relax.text 的初始赋值为"",引号里不用填写内容,且无空格。当执行试次加和后,如被试做完 60 个试次进行休息,则 relax.text 的""里赋值休息提示语句。休息后的计数器归零。

相关文章

网友评论

      本文标题:E-Prime 软件中常用的 inline 语句

      本文链接:https://www.haomeiwen.com/subject/kdjnjrtx.html