首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何成对调用两个不同列表中的值,以在Python中指定两个连续刺激的参数?

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

Stack Overflow用户
提问于 2018-12-05 00:14:02
回答 1查看 47关注 0票数 0

我是Pyhon的新手,所以如果这是一个非常简单或显而易见的事情,或者如果它被证明是一个太长的问题,我提前道歉。

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

代码语言:javascript
复制
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,依此类推。

举个例子,这里有一小段代码,它做了我想做的事情,但是用了一种不方便的方式,并且需要我为每个持续时间的组合编写一个类似的位,因为它不依赖于从列表调用值:

代码语言:javascript
复制
# 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)
EN

回答 1

Stack Overflow用户

发布于 2018-12-05 00:29:30

代码语言:javascript
复制
 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)

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53617139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档