我正面临着一个我不知道如何解决的问题。我用不同的刺激块创建了不同的试验。每个块由正在显示的单词或正在播放的音频文件组成。为了保持受试者的注意力,我必须合并目标项目,这些项目要么是图像,要么是单词。到目前为止,我设法用目标替换了块的随机刺激,但我不知道如何显示目标项。为了进一步解释这个问题:我正在创建随机的刺激列表,每个列表中的一个刺激以1/3的概率被目标项取代。如果目标项的类型与列表中的项相同,这是没有问题的。但是,当我试图显示一个带有文字或音频的块中的图像时,这不起作用。因为列表是由特定于列表项的类型的代码运行的。
这就是我如何将刺激列表中的项目(在本例中是单词列表)与目标列表(包含单词和图像路径的列表)中的随机项目进行交换:
#randomly swapping an item of the list with a probability of 1/3
print(WordV_item) #debug check
swap= random.choice(prob)
print(swap) #debug check
if swap == 1:
a= list(range(1,len(WordV_item)))
m= random.choice(a)
WordV_item[m] = random.choice(Target)
print(WordV_item) #debug check之后,我使用特定的代码运行每个列表,这些代码要么在屏幕上显示为文本,要么作为音频文件播放。我需要的是一些东西,以了解是否有一个目标项目,在列表中,必须以不同的方式显示。我只是不确定该怎么做。我在想,也许我可以构建一个if条件,检查代码何时运行,如果列表项是目标项,并以不同的方式运行它们,但我不确定如何才能做到这一点。
非常感谢您的提前!我也可以上传我的代码,但它非常冗长,所以如果问题不清楚,我宁愿尝试更好地解释它。
祝你有愉快的一天!
发布于 2020-03-02 11:01:48
这个问题可能太冗长和不精确,无法给出基于编码的具体答案,但下面只是关于如何处理多种刺激类型的非常一般的提示。我假设您有每个试验的关联值,这些值指定了刺激类型和用于该刺激的一些值(例如,一些文本、图像文件名或声音文件名):
if trial_type == 'text':
your_text_stimulus.text = trial_value # e.g. 'Hello!'
your_text_stimulus.draw()
elif trial_type == 'picture':
your_image_stimulus.image = trial_value # e.g. 'cat.jpg'
your_image_stimulus.draw()
else: # assume it is audio
your_sound_stimulus.sound = trial_value # e.g. 'dog.wav'
your_sound_stimulus.play()这可能不符合您的实际需求。如果是这样,对于更多的来回讨论,也许这个场所不是理想的形式,您应该尝试https://discourse.psychopy.org上的支持论坛
https://stackoverflow.com/questions/60450938
复制相似问题