未能在 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()
我正在创建一个概率学习任务。它有一个学习阶段,这是我目前正在准备的,在 PsychoPy 中使用带有自定义代码的构建器界面。学习阶段在称为 practice
.
除了用于反馈给参与者的正确答案外,还有三个条件可以决定学习阶段是否可以完成。一旦达到标准,训练阶段将终止。
我需要附加三个变量并计算分数。
我创建了 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()