1

200 個のテキスト刺激を 1 秒間表示する必要があるコードを作成しようとしていますが、コードを動作させることができません。

各刺激は、変数として事前定義されています。

redkey = visual.textStim(win, "key", (1.0, -1.0, -1.0)
bluekey = visual.textStim(win, "key", (-1.0, -1.0, 1.0)

次のような200項目のリストがあります。

x = ['redkey', 'bluekey', 'bluekey', 'redkey'...]

リストを循環し、各変数を 1 秒間 (大まかに) 表示するループを作成しようとしていforますが、動作させることができません。

win = visual.Window([1024, 768], fullscr = false, allowGUI=false, color = (0.0, 0.0, 0.0))

for item in x:
    item.draw()
    win.flip()
    core.wait(1.0)

これを行うと、次のエラーが表示されますAttributeError: 'str' object has no attribute 'draw'

で遊んでみましvars()eval()が、どうすればいいのかわかりません。これを行うことさえ可能ですか?

4

2 に答える 2

2

I'm guessing that you should change:

x = ['redkey', 'bluekey', ...]

to

x = [redkey, bluekey, ...]

As it is, each item in 'x' is a string, rather than the class object that's required.

于 2016-03-07T20:30:45.690 に答える
1

PsychoPy に合わせて、一度刺激を作成し、描画ごとに色を変更することができます

colours = ['red', 'green', 'blue']*200
stim = visual.TextStim(win, text="key")
for entry in colours:
    stim.color = entry
    stim.draw()
    win.flip()
    core.wait(1.0)

これは、多くのテキスト刺激をメモリに格納するよりも効率的です

于 2016-03-08T10:23:35.537 に答える