Jumping to specified index in list


Author
Message
Andrew Papale
Andrew Papale
Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)Associate Member (180 reputation)
Group: Forum Members
Posts: 58, Visits: 205
Dear Inquisit Team,

I have a list:
<list rt_359>
/ items = ( 42, 41, 42, 39, 37, 38, 31, 35, 28, 25, 20, 17, 21, 29, 25, 28, 36, 39, 36, 37, 38, 38, 36, 36, 35, 26, 29, 24, 28, 28, 31, 32, 36, 38, 38, 42, 44, 52, 56, 58, 62, 54, 65, 78, 83, 90, 92, 105, 127, 126, 147, 163, 161, 149, 143, 139, 141, 143, 161, 161, 159, 160, 158, 136, 129, 116, 127, 126, 132, 119, 111, 112, 111, 104, 97, 90, 80, 70, 62, 48, 48, 47, 45, 42, 40, 37, 36, 37, 34, 39, 38, 34, 34, 30, 28, 25, 20, 18, 19, 19, 10, 11, 5, 8, 11, 14, 20, 25, 33, 39, 41, 42, 41, 41, 43, 64, 76, 89, 101, 113, 126, 135, 138, 149, 143, 156, 160, 159, 163, 162, 163, 163, 163, 157, 160, 162, 161, 162, 149, 151, 155, 161, 161, 156, 159, 155, 149, 131, 118, 103, 97, 89, 76, 48, 47, 46, 46, 45, 44, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41, 42, 42, 40, 34, 33, 37, 28, 28, 33, 35, 34, 30, 28, 33, 34, 35, 35, 36, 39, 42, 47, 46, 43, 41, 41, 41, 39, 37, 40, 39, 30, 20, 17, 11, 19, 21, 19, 10, 9, 5, 6, 3, 6, 4, 3, 3, 3, 4, 3, 7, 11, 16, 20, 24, 28, 32, 36, 40, 48, 47, 46, 45, 45, 44, 43, 42, 40, 40, 40, 41, 40, 36, 38, 39, 38, 36, 37, 33, 31, 33, 31, 32, 30, 28, 28, 30, 31, 37, 40, 39, 39, 44, 45, 46, 47, 52, 54, 54, 61, 62, 77, 89, 94, 81, 76, 84, 91, 86, 107, 84, 99, 110, 86, 81, 62, 67, 53, 47, 62, 68, 57, 43, 44, 44, 46, 44, 58, 50, 50, 45, 46, 44, 41, 38, 35, 35, 34, 32, 27, 23, 21, 22, 17, 16, 9, 8, 8, 5, 6, 4, 3, 3, 3, 3, 3, 4, 4, 9, 14, 18, 22, 27, 32, 37, 41, 44, 41, 38, 39, 37,35)
/ poolsize = 316
/ selectionmode = sequence
</list>

For each trial, I want the list to advance by one value.  This is working fine with the current code.

Now, for different groups in my experiment, I want to start the list at a different index.  e.g. group 1 starts at index 1 (42) group 2 starts at index 50 (105), etc.  Is this possible?  I could not find a way to do it.

Thanks,
Andrew

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 95K
Dave - 9/19/2023
Andrew Papale - 9/18/2023
Dear Inquisit Team,

I have a list:
<list rt_359>
/ items = ( 42, 41, 42, 39, 37, 38, 31, 35, 28, 25, 20, 17, 21, 29, 25, 28, 36, 39, 36, 37, 38, 38, 36, 36, 35, 26, 29, 24, 28, 28, 31, 32, 36, 38, 38, 42, 44, 52, 56, 58, 62, 54, 65, 78, 83, 90, 92, 105, 127, 126, 147, 163, 161, 149, 143, 139, 141, 143, 161, 161, 159, 160, 158, 136, 129, 116, 127, 126, 132, 119, 111, 112, 111, 104, 97, 90, 80, 70, 62, 48, 48, 47, 45, 42, 40, 37, 36, 37, 34, 39, 38, 34, 34, 30, 28, 25, 20, 18, 19, 19, 10, 11, 5, 8, 11, 14, 20, 25, 33, 39, 41, 42, 41, 41, 43, 64, 76, 89, 101, 113, 126, 135, 138, 149, 143, 156, 160, 159, 163, 162, 163, 163, 163, 157, 160, 162, 161, 162, 149, 151, 155, 161, 161, 156, 159, 155, 149, 131, 118, 103, 97, 89, 76, 48, 47, 46, 46, 45, 44, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41, 42, 42, 40, 34, 33, 37, 28, 28, 33, 35, 34, 30, 28, 33, 34, 35, 35, 36, 39, 42, 47, 46, 43, 41, 41, 41, 39, 37, 40, 39, 30, 20, 17, 11, 19, 21, 19, 10, 9, 5, 6, 3, 6, 4, 3, 3, 3, 4, 3, 7, 11, 16, 20, 24, 28, 32, 36, 40, 48, 47, 46, 45, 45, 44, 43, 42, 40, 40, 40, 41, 40, 36, 38, 39, 38, 36, 37, 33, 31, 33, 31, 32, 30, 28, 28, 30, 31, 37, 40, 39, 39, 44, 45, 46, 47, 52, 54, 54, 61, 62, 77, 89, 94, 81, 76, 84, 91, 86, 107, 84, 99, 110, 86, 81, 62, 67, 53, 47, 62, 68, 57, 43, 44, 44, 46, 44, 58, 50, 50, 45, 46, 44, 41, 38, 35, 35, 34, 32, 27, 23, 21, 22, 17, 16, 9, 8, 8, 5, 6, 4, 3, 3, 3, 3, 3, 4, 4, 9, 14, 18, 22, 27, 32, 37, 41, 44, 41, 38, 39, 37,35)
/ poolsize = 316
/ selectionmode = sequence
</list>

For each trial, I want the list to advance by one value.  This is working fine with the current code.

Now, for different groups in my experiment, I want to start the list at a different index.  e.g. group 1 starts at index 1 (42) group 2 starts at index 50 (105), etc.  Is this possible?  I could not find a way to do it.

Thanks,
Andrew

You can use a value to determine the list's selection, like you can do basically anywhere else.

I.e.

<values>
/ index = 0
</values>

with

<list rt_359>
...
/ selectionmode = values.index
</list>

Increment the value bye one in every trial, which does the same thing as selecting sequentially. Set the value to whatever start value you need for each group you have, be it 0, 49, or whatever else the case may be.

Here's a runnable example. First group gets index 1 in the first trial, second group gets inex 340 in the first trial, so you can see how things wrap around (the list has 345 items, so once you've shown item 345, you need to wrap around back to item 1).

<values>
/ index = 0
</values>

<list rt_359>
/ items = ( 42, 41, 42, 39, 37, 38, 31, 35, 28, 25, 20, 17, 21, 29, 25, 28, 36, 39, 36, 37, 38, 38, 36, 36, 35, 26, 29, 24, 28, 28, 31, 32, 36, 38, 38, 42, 44, 52, 56, 58, 62, 54, 65, 78, 83, 90, 92, 105, 127, 126, 147, 163, 161, 149, 143, 139, 141, 143, 161, 161, 159, 160, 158, 136, 129, 116, 127, 126, 132, 119, 111, 112, 111, 104, 97, 90, 80, 70, 62, 48, 48, 47, 45, 42, 40, 37, 36, 37, 34, 39, 38, 34, 34, 30, 28, 25, 20, 18, 19, 19, 10, 11, 5, 8, 11, 14, 20, 25, 33, 39, 41, 42, 41, 41, 43, 64, 76, 89, 101, 113, 126, 135, 138, 149, 143, 156, 160, 159, 163, 162, 163, 163, 163, 157, 160, 162, 161, 162, 149, 151, 155, 161, 161, 156, 159, 155, 149, 131, 118, 103, 97, 89, 76, 48, 47, 46, 46, 45, 44, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41, 42, 42, 40, 34, 33, 37, 28, 28, 33, 35, 34, 30, 28, 33, 34, 35, 35, 36, 39, 42, 47, 46, 43, 41, 41, 41, 39, 37, 40, 39, 30, 20, 17, 11, 19, 21, 19, 10, 9, 5, 6, 3, 6, 4, 3, 3, 3, 4, 3, 7, 11, 16, 20, 24, 28, 32, 36, 40, 48, 47, 46, 45, 45, 44, 43, 42, 40, 40, 40, 41, 40, 36, 38, 39, 38, 36, 37, 33, 31, 33, 31, 32, 30, 28, 28, 30, 31, 37, 40, 39, 39, 44, 45, 46, 47, 52, 54, 54, 61, 62, 77, 89, 94, 81, 76, 84, 91, 86, 107, 84, 99, 110, 86, 81, 62, 67, 53, 47, 62, 68, 57, 43, 44, 44, 46, 44, 58, 50, 50, 45, 46, 44, 41, 38, 35, 35, 34, 32, 27, 23, 21, 22, 17, 16, 9, 8, 8, 5, 6, 4, 3, 3, 3, 3, 3, 4, 4, 9, 14, 18, 22, 27, 32, 37, 41, 44, 41, 38, 39, 37,35)
/ selectionmode = values.index
</list>

<trial mytrial>
/ ontrialbegin = [
    values.index += 1; // increment index by 1
    values.index = mod(values.index - 1, list.rt_359.itemcount) + 1; // make sure we wrap around to index 1
]
/ stimulusframes = [1=text.mytext]
/ validresponse = (57)
</trial>

<text mytext>
/ items = ("List value: <%list.rt_359.nextvalue%> | List index: <%list.rt_359.currentindex%> (<%values.index%>) | Group: <%script.groupid%>")
</text>

<block myblock>
/ trials = [1-345 = trial.mytrial]
</block>

<expt a>
/ onexptbegin = [
    values.index = 0;
]
/ blocks = [1 = block.myblock]
/ groups = (1 of 2)
</expt>

<expt b>
/ onexptbegin = [
    values.index = 339;
]
/ blocks = [1 = block.myblock]
/ groups = (2 of 2)
</expt>


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search