【问题标题】:How do I call values from two different lists, in pairs, to specify parameters of two sequential stimuli in Python?如何在 Python 中成对调用两个不同列表中的值来指定两个连续刺激的参数?
【发布时间】:2018-12-04 16:14:02
【问题描述】:

我对 Pyhon 很陌生,所以如果这是一件非常简单或显而易见的事情,或者如果问题太长,我提前道歉。

我正在尝试通过 PsychoPy 编写一个实验,在每次试验中,我在给定的持续时间内分别呈现两个连续的刺激,两者都由一个刺激间间隔隔开。现在,为了指定持续时间,我使用了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)

【问题讨论】:

    标签: python psychopy


    【解决方案1】:
     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)
    

    如果我解决了你的问题,这应该可以如你所愿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多