我面临着一个我不知道如何解决的问题。我用刺激块创建了不同的试验。每个块由显示的单词或正在播放的音频文件组成。为了吸引受试者的注意力,我必须结合目标项目,这些目标项目要么是图像,要么是单词。到目前为止,我设法用目标替换了随机刺激的方块,但是我不知道如何显示目标项。为了进一步解释该问题:我正在创建随机刺激列表,并且每个列表有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条件,该条件检查清单项目是否为目标项目并以不同方式运行它们,以检查何时运行代码,但是我不确定如何使这项工作有效。
非常感谢!我也可以上传我的代码,但是它很长,所以如果问题不清楚,我宁愿尝试更好地解释它。
祝您有美好的一天!
这个问题可能过于冗长和不精确,无法给出基于编码的特定答案,但以下只是关于如何处理多种刺激类型的非常一般性的提示。我假设每个试验都有相关的值,这些值指定刺激的类型和用于该刺激的一些值(例如,一些文本,图像文件名或声音文件名):
if trial_type == 'text':
your_text_stimulus.text = trial_value # e.g. 'Hello!'
your_text_stimulus.draw()
elif trial_type == 'picture':
your_image_stimulus. = 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