Millisecond Forums

wanted noreplace on blocks but got selection of items

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

By Anna Halm - 10/15/2013

The main idea is to chose randomly the order of blocks from a set of 4 different block within an experiment. In the end all block should have been presented. Every block contains two trails (one audio file and a set of three items). Again, all audio files and items should be show. So it's really only about the order of the blocks.


I tried to use the noreplace on a block-level. As a result, one of the three items from both blocks are chosen and the others won't show up. Am I wrong to use noreplace in this case?


<expt>
/ subjects = (1 of 2)
/ blocks = [1-4=noreplace(A1, A2, A3, A4)]
</expt>

<expt>
/ subjects = (2 of 2)
/ blocks = [1-2=noreplace(B1, B2, B3, B4)]
</expt>


Thanks a lot!


Anna

By Dave - 10/15/2013

How you sample blocks at the expt level *has nothing to do with* and is *completely unrelated to* how *trials may sample stimuli within those blocks*. Please see the documentation for the /resetinterval attribute for details.

By Luise - 5/12/2016

My main idea is the same as Anna had. In my experiment I need to randomly present 100 blocks without replacement. I want every block to be presented exactly once and in a random order. "Noreplace" does not seem to work. There are always some blocks presented more than once. I also tried </defaults> / resetinterval = 0 </defaults> but maybe I am using it the wrong way or it does not help neither.
This is how (the important part of my) experiment looks like:

<defaults> / font = ("Arial", -21, 400, 0, 34)
/ txbgcolor = (250, 250, 250) / screencolor = (250, 250, 250)
/ pretrialpause = 0 / posttrialpause = 150
/endlock = true
/ resetinterval = 0
</defaults>

<text cue1>
/ numitems = 1
/ items = ("xy")
/ font = ("Arial", -37, 700, 0, 34) / position = (50,85) / color = (0, 0, 0) / area = (900,200) 
</text>

<picture pic_1>/numitems = 1 / items = ("1.jpg") / position = (50, 1) / valign = top / size=(672, 813,12)</picture>
<picture pic_2>/numitems = 1 / items = ("2.jpg") / position = (50, 1) / valign = top / size=(672, 813,12)</picture>
<picture pic_3>/numitems = 1 / items = ("3.jpg") / position = (50, 1) / valign = top / size=(672, 813,12)</picture>

<likert person_1> / numpoints = 7 / anchors = [1 = "gar nicht"; 7 = "sehr"]
    / stimulusframes = [1= pic_1, cue1]  / position = (50, 90) / anchorwidth = 6% </likert>

<likert person_2> / numpoints = 7 / anchors = [1 = "gar nicht"; 7 = "sehr"]
    / stimulusframes = [1= pic_2, cue1]  / position = (50, 90) / anchorwidth = 6% </likert>

<likert person_3> / numpoints = 7 / anchors = [1 = "gar nicht"; 7 = "sehr"]
    / stimulusframes = [1= pic_3, cue1]  / position = (50, 90) / anchorwidth = 6% </likert>
...

<block blockp1>/ trials = [1=person_1]</block>
<block blockp2>/ trials = [1=person_2]</block>
<block blockp3>/ trials = [1=person_3]</block>
...

<expt ratings>
/ blocks = [1-100= noreplace (blockp1,blockp2,blockp3,blockp4,blockp5, ..., blockp100)]
</expt>
By Luise - 5/12/2016

Do you have any advice how to fix this problem? I´d be really greatful!

By Dave - 5/12/2016

There is no problem here. If you have specified your noreplace() pool in the <expt>'s /blocks attribute correctly, i.e., there are 100 blocks listed and every block is only listed a single time, each block will be run exactly once. /resetinterval has nothing to do with it. /resetinterval determines whether a stimulus element's selection pool should be reset between blocks or not.

<expt>
/ blocks = [1-4 = noreplace(a,b,c,d)]
</expt>

with

<block a>
...
</block>

<block b>
...
</block>

<block c>
...
</block>

<block d>
...
</block>

will result in a random order of blocks a, b, c and d -- with each block run exactly once.
By Dave - 5/12/2016

To add: You very likely have *mistakes* in your script that make you *think* a certain block is repeated.

What could those mistakes be?

#1: You have <block>s that run the wrong <likert>, i.e. something like

<block blockp5>
/ trials = [1=person_3]
</block>

#2: You have <likert>s that display the wrong <picture>, i.e., something like

<likert person_5>
...
/ stimulusframes = [1= pic_3, cue1] 
...
</likert>

and/or

#3: You have <picture>s that display the wrong item

<picture pic_5>
...
/ items = ("3.jpg")
...
</picture>



By Luise - 5/12/2016

Thank you...I will search for mistakes again then. It is good to know that in theory the way I used should work.
By Dave - 5/12/2016

Go through it and see if you can spot anything along the lines outlined in the previous reply. If you can't find any (or all of the) mistakes and need a second pair of eyes, attach the script file to this thread (click +Insert -> Add File) and I'll be happy to take a look.
By Luise - 5/12/2016

Hi again...thank you for your offer. I really appreciate it. I searched for mistakes and tried a few more ideas I had, but some pictures are still presented more than once and I just cannnot figure out why. So you find my script attached to this message. It would be great if you could afford to take a look at it.
By Dave - 5/12/2016

It would be helpful if you could specify *which* pictures (by name) you think are being repeated.