回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试做一个任务,在这个任务中,固定十字架将在60秒左右的随机时间(以秒为单位)改变颜色(从白色变为红色)。所以,在5秒、10秒、45秒或55秒时。我尝试了if-else循环,但得到了一个错误:fixection.draw()
NameError:没有为脚本中的最后一个fixture.draw()定义名称“fixture”,我不知道为什么。我试图在循环之前定义固定,但它不起作用,我也认为我在if-else循环中定义了固定,但可能我错了。代码如下:</p>
<pre><code>from psychopy import visual, event, core, data, gui
from psychopy.hardware.emulator import launchScan
import time
from numpy.random import random, randint, normal, shuffle
globalClock = core.Clock()
class MyStim(object):
def __init__(fixation):
fixation()
fixationtimes = list(range(60))
win = visual.Window([1280, 800], monitor="testMonitor",fullscr=True)
if fixationtimes == [5, 10, 45, 55]: # create list
shuffle(fixationtimes) # randomize order
fixation = visual.GratingStim(win=win, units="deg", size=2, pos=[0, 0], sf=0, color="red", autoDraw=True)
else:
fixation = visual.GratingStim(win=win, units="deg", size=2, pos=[0, 0], sf=0, color="white", autoDraw=True)
fixation.draw()
win.flip()
core.wait(2.0)
myStim = MyStim()
win.flip()
core.quit()
</code></pre>
<p>代码可能效率很低,因为我是Python新手。如果有人能帮忙,请:)</p>