Millisecond Forums

Setting response value to stimulus presented

https://forums.millisecond.com/Topic15056.aspx

By sdandeneau - 11/24/2014

I've developed a task that has participants pick the picture, out of a grid of 9 pictures, that best represents their "real" self. Participants are therefore simply clicking on the picture/stimulus to make their response. I used the script from a another task (Visual Search task) that presents pictures in a 4x4 grid to create this task.

My question: The script randomly assigns the stimuli to spots in the 3 x 3 grid, and the data tells me which spot the person picked (e.g. spot # 3 or 'distractor03'), however I'd like to know what stimulus appeared in that spot. In other words, I'd like to say "response = stimulus (e.g. picture #4.jpg) that was presented in the spot chosen".

Thanks in advance, 
Stéphane
By Dave - 11/24/2014

> The script randomly assigns the stimuli to spots in the 3 x 3 grid

Instead of assigning stimuli to positions (as the above suggests), you should assign positions to stimuli. Example:

<trial mytrial>
/ stimulusframes = [1=a,b,c]
/ validresponse = (a,b,c)
/ inputdevice = mouse
</trial>

<text a>
/ items = ("A")
/ hposition = list.hpos.nextvalue
</text>

<text b>
/ items = ("B")
/ hposition = list.hpos.nextvalue
</text>

<text c>
/ items = ("C")
/ hposition = list.hpos.nextvalue
</text>

<list hpos>
/ items = (35%, 50%, 65%)
/ selectionrate = always
</list>


Then you have the information you want directly.
By sdandeneau - 11/24/2014

I meant to include the script in the original post but had problems with the upload. 
Here is the dropbox link to the task and stimuli - please enter 3000 for subject number. 
https://www.dropbox.com/s/h1jh66q4a5dk3v7/GardnerMatrix.zip?dl=0 

I didn't describe the script right... it does assign a position to stimuli, as you mention. However, I can't figure out how to get the stimuli that was associated to each "distractor" at each trial. 

Thanks!!

By Dave - 11/24/2014

You retrieve it via the stimulus element's currentitem property. Going back to my original example:

<block myblock>
/ trials = [1-2=mytrial]
</block>

<values>
/ myvalue = ""
</values>


<trial mytrial>
/ ontrialend = [if (trial.mytrial.response == "a") values.myvalue = text.a.currentitem]
/ ontrialend = [if (trial.mytrial.response == "b") values.myvalue = text.b.currentitem]
/ ontrialend = [if (trial.mytrial.response == "c") values.myvalue = text.c.currentitem]
/ stimulusframes = [1=a,b,c]
/ validresponse = (a,b,c)
/ inputdevice = mouse
</trial>

<text a>
/ items = ("A1", "A2")
/ hposition = list.hpos.nextvalue
</text>

<text b>
/ items = ("B1", "B2")
/ hposition = list.hpos.nextvalue
</text>

<text c>
/ items = ("C1", "C2")
/ hposition = list.hpos.nextvalue
</text>

<list hpos>
/ items = (35%, 50%, 65%)
/ selectionrate = always
</list>

<data>
/ columns = [response latency values.myvalue]
</data>


By sdandeneau - 11/24/2014

Wonderful... this works great!
Thanks a lot!