实验有多个block时,Psychopy设置loop的方法



1. 整理stimuli ¶

以我的实验为例,180个句子,有连接词(and vs or)*停顿时间(0ms vs 200ms),4种条件,counterbalance之后,每个被试看180个句子,4个block。

4种不同的句子类型Condition:c1~c4, 4个block:b1~b4,根据被试分成4组:PA~PD

图1

根据实验分组,被试的组别和block把数据拆成了4*4=16个单独的excel表格,分别以PAb1, PAb2….PDb3,PDb4命名

2 设置循环 ¶

实验整体设计

我的实验只加了2层loop,block层loop的循环条件(Conditions)使用 $“group{}.xlsx”.format(expInfo[‘group’])

外层block的loop

内层的loop增加4个excel表格“groupA~groupD”,每个表格中只需要一列数据“blockcondition”

例如groupA.xlsx中的数据应为“PAb1, PAb2,PAb3,PAb4”

这层loop的随机条件为 $blockcondition + ‘.xlsx’,调用对应命名的excel表格,也就是 1.2 中拆出来的16个表。

groupA.xlsx的列名可以是其他任何命名,只要和loop随机条件的$‘随便一个命名’+’.xlsx’一致即可

内层trial的loop

3 每个trial的设置 ¶

trial随机

我的实验材料为音频,组件“SoundTrial_1”中“Sound” 写 $soundfile , soundfile是所有excel表格中的一列字段。

4 其他 ¶

每个使用的命名不能重复,也不能和psychopy自带的命名重复。

可以继续尝试有没有再加一层loop减少excel表格的方式。

文字呈现,一个trial应该在一个routine里设置,词的呈现时间、词和词之间的间隔、空屏的时间通过修改每个text的组件开始时间、持续时间来完成设置。