首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python/精神病学中随机视觉刺激的复制

Python/精神病学中随机视觉刺激的复制
EN

Stack Overflow用户
提问于 2016-01-13 15:49:30
回答 1查看 305关注 0票数 1

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

这是我的代码:

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-13 18:29:02

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

代码语言:javascript
复制
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),或者随机的drawSet(targetset,location) (假设你在某个地方是import random as r )。

代码语言:javascript
复制
if r.random() < 0.5:
    drawSet(pics,location)
else:
    drawSet(targetset,location)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34771064

复制
相关文章

相似问题

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