Отображение различных типов стимулов в рамках испытания - PsychoPy Coding - PullRequest
0 голосов
/ 28 февраля 2020

Я столкнулся с проблемой, которую не знаю, как решить. Я создал разные испытания с блоками стимулов. Каждый блок состоит из показанных слов или аудиофайлов. Чтобы удержать внимание субъектов, я должен включить целевые элементы, которые являются либо изображением, либо словом. Пока мне удалось заменить случайный стимул блоков на цель, но я не знаю, как отобразить целевой элемент. Чтобы объяснить проблему чуть дальше: я создаю случайные списки стимулов, и с вероятностью 1/3 один стимул каждого списка заменяется целевым элементом. Это не проблема, если целевой элемент того же типа, что и элементы в списке. Однако, когда я пытаюсь отобразить изображение в блоке со словами или aud ios, это не работает. Потому что списки запускаются кодом, который указывает c на тип элементов списка.

Вот как я обмениваюсь на элемент списка стимулов (в данном случае на список слов) со случайным элементом из целевого списка (список, содержащий слова и пути к изображениям):

    #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

После этого я запускаю каждый список с указанным кодом c, который либо отображает их в виде текста на экране, либо воспроизводит их в виде аудиофайлов. Мне нужно кое-что понять, если в списке есть целевой элемент, который должен отображаться по-другому. Я просто не уверен, как это сделать. Я подумал, может быть, я мог бы встроить условие if, которое проверяет, когда код выполняется, если элементы списка являются целевыми элементами, и запускает их по-разному, но я не уверен, как мне это сделать.

Большое спасибо заранее! Я мог бы также загрузить свой код, но он очень длинный, поэтому я бы лучше попытался объяснить его немного лучше, если проблема не ясна.

Хорошего дня!

1 Ответ

0 голосов
/ 02 марта 2020

Этот вопрос, возможно, слишком многословен и неточен, чтобы дать конкретный c ответ на основе кодирования, но ниже приведен лишь очень общий совет о том, как обрабатывать несколько типов стимулов. Я предполагаю, что у вас есть связанные значения для каждого испытания, которые указывают тип стимула и некоторое значение, которое будет использоваться для этого стимула (например, некоторый текст, имя файла изображения или имя файла звука):

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

...