Python中的随机视觉刺激

2024-09-29 21:46:06 发布

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

使用Python/psycopy。我向屏幕中央呈现3个随机视觉刺激,持续1秒(imgList1)。然后我在屏幕的右上角呈现另外3个随机的视觉刺激(imgList)。在50%的情况下,我需要第二组刺激(imgList)与第一组(imgList)相同。我如何访问在第1部分中随机选择的刺激,这样我就可以使用这些信息来显示这些相同的刺激了?我不知道如何跟踪我最初随机选择的图像的结果。在

这是我的代码:

#make initial stimuli
imgList1 = glob.glob(os.path.join('stim','*.png'))
random.shuffle(imgList1)
targetset = [visual.ImageStim(window, img) for img in imgList1]

setlocation = [(-2,0),(0,0),(2,0)]
random.shuffle(setlocation)

#make second group of stimuli
imgList = glob.glob(os.path.join('stim', '*.png'))
random.shuffle(imgList)
pics = [visual.ImageStim(window, img) for img in imgList[:3]]

location = [(1,2),(3,3),(5,5)]
random.shuffle(location)

#display initial stimuli set
for i in range(3):
    targetset[i].pos = setlocation[i]
    targetset[i].draw()

window.flip()
core.wait(1)

#display secondary stimuli
for i in range(3):
    pics[i].pos = location[i]
    pics[i].draw()
    window.flip()
    core.wait(.25)

core.wait(3)
window.close()
quit()

Tags: incoreimgforlocationrandomwindowglob
1条回答
网友
1楼 · 发布于 2024-09-29 21:46:06

targetset是包含您从imgList1中选择的图像的列表。当你画的时候他们哪儿也不去。您以后仍然可以访问该列表(只要不删除或覆盖)。只需掷一个硬币(选择一个0到1之间的随机数,并检查是否小于0.5。如果是这样,在次级刺激中使用pics,如果不使用targetset(与第二个位置列表一起使用)。您可能会发现这值得抽象为一个函数。在

def drawSet (imgs,locs):
    for(i,l) in (imgs,locs):
        i.pos = l
        i.draw()
        window.flip()
        core.wait(0.25)

然后你可以用这个来表示drawSet(targetset,setlocation)drawSet(pics,location)或{}和随机(假设你在某处import random as r

^{pr2}$

相关问题 更多 >

    热门问题