Presenting only a subset of conditions

时间:2018-10-28 23:22:50

标签: psychopy

I have a simple experiment with 3 blocks. Instead of putting stimulus (words) into three different files, I set them in one file and want to use ‘selected rows’ to assign them to different tasks (blocks). Below is the flow.

[selected rows: np.random.choice(15, size = 5, replace = False)]

enter image description here

中的href

问题是经过5次试验(第一个块级条件)后,所有单词都将被重新排列,以便出现在第1块中的单词也可能出现在第2块/第3块中。

是否有任何解决方案可以实现,如果在一个块中使用了某个单词,那么该单词将不会在随后的块中再次出现?非常感谢!

1 个答案:

答案 0 :(得分:1)

该问题可能是由于您多次有效地随机化而引起的:既选择行的子集,又选择循环本身。也就是说,您应该将循环设置为sequential而不是random,因为您是通过选择行的子集自己来处理随机化的。

即使这样做,您仍然遇到第二个问题:如果您通过np.random.choice()为每个块选择5行的子集,那么这些选择是独立的,因此很可能有一些可变的行数将被多次选择。因此,您需要做的是确保在整个实验中选择行而不进行替换。

我建议您随机将列表中的所有15个行索引随机排序,然后在每个块中应用该列表的子集。这样,您可以确保不会有多个选择的行。例如:

row_order = range(15)
np.random.shuffle(row_order)

然后在这三个块中的每个块中,您将使用以下子集:

row_order[0:5]
row_order[5:10]
row_order[10:15]

这为您提供了每个块中的随机选择,但没有行重复。