**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.
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
#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 #saving the image to the image array image.append(row) animalOdp.append(row) category.append(row) #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:
#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
#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.