未能在 psychopy 中附加变量

Failure to append a variable in psychopy

我正在创建一个概率学习任务。它有一个学习阶段,这是我目前正在准备的,在 PsychoPy 中使用带有自定义代码的构建器界面。学习阶段在称为 practice.

的循环中至少有 60 次试验

除了用于反馈给参与者的正确答案外,还有三个条件可以决定学习阶段是否可以完成。一旦达到标准,训练阶段将终止。

我需要附加三个变量并计算分数。 我创建了 3 个变量(类似于 resp.corr 变量)专门针对这三个条件计算。代码放在“结束例程”部分,因为在前面的部分中 resp 尚未定义。

例程结束

if (resp.keys == letterA):
    resp1 = 1
else:
    resp1 = 0

if (resp.keys == letterC):
    resp2 = 1
else:
    resp2 = 0

if (resp.keys == letterE):
    resp3 = 1
else:
    resp3 = 0

这工作正常。我在 excel 输出中添加了变量 resp1、resp2 和 resp3。我检查了,它们都计算正确。

所以我知道我需要将这些变量附加到列表中,我使用了以下代码:

结束例程

resplist1.append(resp1)
resplist2.append(resp2)
resplist3.append(resp3)

我还将这些列表保存在 excel 输出中,以检查它们是否计算正确。我使用了以下代码:

结束例程

practice.addData('resplist1', resplist1)

practice.addData('resplist2', resplist2)

practice.addData('resplist3', resplist3)

不幸的是,replist1、replist2 和 replist3 无法追加列表。相反,resp1、resp2 和 resp3 的值打印在 [] 中。底部图片:

imageimage.png1635×655 34.1 KB

我还检查了是否可以计算 replist1、replist2 和 replist3 的总和,正如您所猜测的那样,它没有用。计算值与resp1、resp2、resp3完全相同

我不确定为什么没有正确附加列表,我将不胜感激所有帮助!我已经在这个任务上坚持太久了,我很想完成它。

https://i.stack.imgur.com/aXW60.png

您没有显示如何初始化列表 resplist1 等。我猜您是在 "Begin routine" 选项卡中这样做的。这将不断地重置它们,使它们永远不会包含一个以上的值。

如果是这样,将它们的初始化转移到 "Begin experiment" 选项卡,这样您就不会在每次试验中丢失新附加的值。

当您有一个实际包含多个元素的列表时,对其进行计算的最简单方法是将其转换为 numpy(导入为 np)数组,这允许向量化操作, 例如:

sum_1 = np.array(resplist1).sum()