**OS X El Capitan Version 10.11.6
**PsychoPy2 v1 1.85.6
**Standard Standalone? yes
What are you trying to achieve?:
My procedure has 2 parts:
- learning phase: 100 images of 5 different categories are presented (20 of each category) in random order; after each image question is presented (“Did the image contain an animal?”; answers [Y/N])
- recognition phase: 100 images are presented in random order (50 old images, already presented in learning phase <10 of each category> and 50 new <10 of each category> ); after each image the rating scale is presented <with values 1 - 6>.
Pictures in both phases should be randomize with keeping 2 conditions: category proportions and old/new status (in recognition phase)
What did you try to make it work?:
I have tried 2 options:
- I created exel file with 4 variable’s values: image, animal_correct ans, category.
Each picture ($ImageItem) is presented in study trial one by one:
I add Code Component at the beginning of the experiment (code_random). The code randomize the images order.
Begin Experiment
import random, xlrd
#randomize the seed
random.seed()
#stimulus File
infile ='image_stimuli_file.xlsx'
#num of study items
num_study = 100
#num of test items
num_test = 100
#total num of items
num_items = 150
Begin Routine
#access the xls the stimulus file
inbook = xlrd.open_workbook(infile)
insheet = inbook.sheet_by_index(0)
#arrays for our stimuli
image= []
animalOdp= []
category= []
#read the stimuli from our sheet
for rowx in range(1, num_items+1):
#read in the values of all columns on this row
row = insheet.row_values(rowx)
#print out the value of the column A for this row
#print row[1]
#saving the image to the image array
image.append(row[0])
animalOdp.append(row[1])
category.append(row[2])
#create an image item list
stim_order = range(num_items)
#randomizes the order of the image array
random.shuffle(stim_order)
#arrays for our final stimuli
image_item = []
old_new = []
animal_odp = []
category = []
#create in final stimulus list
for i in range(num_test):
#assign an image item from an item list
image_item.append(image[stim_order[i]])
animalOdp.append(image[stim_order[i]])
category.append(image[stim_order[i]])
#determine the old/new status of items
if i < 100:
old_new.append("old")
else:
old_new.append("new")
I add Code Component also before the study trial (studyCode) in a study_loop:
Begin Experiment
#create a list of the order in which to show study items
study_order = range(num_study)
#randomize the order of study list items
random.shuffle(study_order)
#current study trial
study_trial = 0
Begin Routine
#assigning the study item
ImageItem = image_item[study_order[study_trial]]
#increment the current study item counter
study_trial = study_trial + 1
- I created exel file - each column represents each category; each row is one trial (with 5 different categories). But give up this option as the first seems to work better.
What specifically went wrong when you tried that?:
Where I’ve got stuck:
-
In option 1 I can’t figure out how to set proper category proportions in StudyTrial (to show 20 images of each category). Shall I add something to Code Component just before study trial or all my construction is wrong?
-
Could you give me any hints how to present 50 old (10 of each category) and 50 new items (10 of each category) in TestTrial ?
I would really appreciate any advice on this.
Thanks,
Alicja