我正在设置一个Matlab程序,人们将看到一系列15个单词(例如,“狗”,“猫”,“鱼”,“山羊”等)。每次试验将呈现一个单词,并且整个单词系列将重复40次(总共= 600次试验; 15个单词中的每一个都有40个独特的外观)。
我想把试订单安排成伪随机的:在50%的试验中(从试验3开始),该词应与 * 前两次试验 * 中出现的词相同。例如,有效的试订单(规模小得多)将是:
- 试验1:狗(太早是一个2回重复)
- 试验2:猫(太早是一个2回重复)
- 试验3:犬(重复2次)
- 试验4:鱼(不是2回重复)
- 试验5:山羊(非2-back重复)
- 试验6:鱼(2-背部重复)
- 试验7:山羊(2-背部重复)
- 试验8:猫(不是2-back重复)
以上是有效的,因为4个单词中的每一个出现的频率相等(这里,每个两次),从试验3开始,2-back重复和不重复的次数相等。
我也可以接受2-back重复的数量不等于50%,但它应该接近(例如,在40%和60%之间)。但是,我不知道如何保持这种约束,同时仍然确保15个单词中的每一个在整个试验集(600次试验)中重复相同的次数(40次)。
任何帮助都非常感谢!先谢了。
我尝试过用蛮力方法重新排列整个试验集,直到偶然遇到约束,但这需要太长的时间来处理。
1条答案
按热度按时间snz8szmq1#
这应该能满足你的要求
shuffle_vector_2_back_repetitions
返回一个大小为600 x 1的向量,其中包含15个元素的单词单元数组的索引。要测试函数的正确性,请使用以下命令:它应该返回一个接近
300
的数字。