我是使用 PsychoPy 的新手,我编写了一些简单的任务。我目前正在努力编写一个单词点探针。我不想使用 coder,只是因为我的研究团队的其他成员需要能够轻松地编辑程序、工作和使用它。
如果有人想知道我的具体问题是什么,我似乎无法同时正确加载图片,并且不知道一旦图片消失后如何让探测器出现在其中一张图片后面。
我是使用 PsychoPy 的新手,我编写了一些简单的任务。我目前正在努力编写一个单词点探针。我不想使用 coder,只是因为我的研究团队的其他成员需要能够轻松地编辑程序、工作和使用它。
如果有人想知道我的具体问题是什么,我似乎无法同时正确加载图片,并且不知道一旦图片消失后如何让探测器出现在其中一张图片后面。
时间问题可以通过在试验开始时插入 ISI 周期来解决,例如在固定交叉期间。这允许 Psychopy 在背景中加载图像,以便它们准备好呈现。
在您的情况下,您希望点位置是随机的,与图像无关。这是 TrialHandler 无法处理的情况之一,我怀疑您需要插入代码组件才能使其工作。对于真正的随机性,但在无限试验的限制中只有 50% 的概率,只需将其放在“开始例程”下的代码组件中:
x = (np.random.binomial(1, prob) - 0.5) * xdist
y = 0
dot.pos = [x, y]
并更改dot
为您的点刺激的名称,y
是垂直偏移量,x
是水平偏移量(这里在试验之间变化),xdist
是点位置之间的距离,并且prob
是点出现在右侧的机会。您可能希望将其设置为0.5
,即 50 %。
如果您希望点在每一侧出现完全相同的次数,您可以在代码组件中执行以下操作:
在“开始实验”下,列出试验次数的确切长度:
dotPos = [0, 1] * int(round(numberOfTrials/2)) # create the correct number of left/right (coded as 0 and 1). [0,1] yields 50%. [0,0,0,1] and /4 would yield 25 % etc.
np.random.shuffle(dotPos) # randomize order
然后在“开始例程”下做一些类似于我们上面所做的事情:
x = (dotPos.pop() - 0.5) * xdist # dotPos.pop() takes returns the last element while removing it from the list.
y = 0
dot.pos = [x, y]
自然,如果试验次数不均匀,一个位置将比另一个位置多占用一次。
作为记录,如果要在每个图像组合的每个位置显示点位置,只需将这些情况中的每一个都计算为条件,即在条件文件中给它们一个单独的行。