Counting/controlling the number of adjacent stimuli presented in 2 back task


Author
Message
AliciaShen
AliciaShen
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Awaiting Activation
Posts: 11, Visits: 52
Dear divine beings of the inquisit:

I am adapting the "SINGLE N-BACK TASK NON_ADAPTIVE (2- KEY VERSION)" by Katja Borchert to complete a 1 back task. I have a sequence of 7 stimuli, and would like all adjacent pairs (stimuli 1&2, stimuli 2&3 etc....) to be presented back to back for all pairs for at least two times within a block. How could I accomplish that without making the block unnecessarily long? 

Currently I have target appearing 50% of the time, and the rest of the nontargets randomly chosen from the rest of the stimuli. Below is code for selecting the stimuli. Any help/suggestions are very welcomed!

##############################
######STIMULI-SELECTION: face

*list.notargetvalue selects any of the 7 faces (item indices) but the one selected for values.currenttarget
<list notargetvalue>
/items = (1, 2, 3, 4, 5, 6, 7)
/ not = (values.currenttarget)
/ replace = true
</list>


***randomly selects one of the faces as start value
<picture startshape>
/ items = shapes
/select = replace
/size = (40%, 40%)
</picture>

***selects any shape but the established target
<picture nontargetshape>
/ items = shapes
/ select = notargetvalue
/size = (40%, 40%)
</picture>

***selects the item with the same item number as the established target
<picture targetshape>
/items = shapes
/select = values.currenttarget
/size = (40%, 40%)
</picture>


##############################
######trila nontarget

<trial nontarget>
/ stimulustimes = [0 = nontargetshape]
/ validresponse = (38, 30)
/ correctresponse = (38)
/ ontrialbegin = [
{if (values.N == 1) values.currenttarget = values.minus1};
{if (values.N == 2) values.currenttarget = values.minus2};
{if (values.N == 3) values.currenttarget = values.minus3};
{if (values.N == 4) values.currenttarget = values.minus4}
]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialend = [
values.minus4 = values.minus3;
values.minus3 = values.minus2;
values.minus2 = values.minus1;
values.minus1 = picture.nontargetshape.currentitemnumber;
values.CorrReject = values.CorrReject + trial.nontarget.correct;
values.trial_CR = trial.nontarget.correct;
{if (trial.nontarget.response == 30)
{values.FalseA = values.FalseA + trial.nontarget.error;
values.trial_FA = trial.nontarget.error;
values.TotalFA = values.TotalFA + trial.nontarget.error}};
values.DV = (values.TotalHits - values.TotalFA)/values.TotalBlocks;
]
/ responsetime = 0
/ posttrialpause = 250
</trial>


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Reading This Topic

Explore
Messages
Mentions
Search