如何成对调用两个不同列表中的值来指定Python中两个连续刺激的参数?

2024-04-28 08:01:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Pyhon还很陌生,所以如果这是一件非常简单或明显的事情,或者问题太长,我事先向你道歉

我试图通过心理变态来编写一个实验,在每个实验中,我呈现两个连续的刺激,每个都有一个给定的持续时间,都被一个刺激间隔隔开。现在,为了指定持续时间,我使用了wait()函数,以前在单刺激试验中,通过调用列表中的值成功地做到了这一点,然而,这次我为每个刺激使用了不同的列表:

FSTIMDUR = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2]
SSTIMDUR = [1.5, 2.25, 3.0, 3.75, 4.5, 5.25, 6]

也就是说,我想做的是使第一个刺激出现一个与FSTIMDUR列表的第一个元素相对应的持续时间(即0.5秒),然后允许ISI通过,然后将第二个刺激出现一个与SSTIMDUR列表的第一个元素相对应的持续时间(1.5秒),进行一次试验。在随后的试验中,我想以同样的方式呈现其余的刺激,从两个列表中成对调用每个刺激的持续时间(第二次试验为0.75和2.25,第三次试验为1.0和3.0,以此类推)

作为一个例子,这里有一段代码实现了我想做的事情,但是做起来很不方便,并且要求我为每个持续时间组合编写一个类似的代码,因为它不依赖于从列表中调用值:

# TOTAL STIMULUS DURATION (2s, 0.5:1.5)

# draw the fixation stimulus
fixstim.draw()
fixonset = disp.flip()
wait(FIXTIME)
# draw the sample stimulus 1
probstim.draw()
probonset = disp.flip()
wait(0.5)
# allow for an ISI to pass
isi = disp.flip()
wait(ISI)
# draw the sample stimulus 2
probstim.draw()
probonset = disp.flip()
wait(1.5)

Tags: thesample代码元素列表事情持续时间draw
1条回答
网友
1楼 · 发布于 2024-04-28 08:01:41
 for ftime, stime in zip(FSTIMDUR,SSTIMDUR):
    fixstim.draw()
    fixonset = disp.flip()
    wait(FIXTIME)
    # draw the sample stimulus 1
    probstim.draw()
    probonset = disp.flip()
    wait(ftime)
    # allow for an ISI to pass
    isi = disp.flip()
    wait(ISI)
    # draw the sample stimulus 2
    probstim.draw()
    probonset = disp.flip()
    wait(stime)

如果我把你的问题解决了,这应该能像你想的那样工作

相关问题 更多 >