我非常感谢任何回复。我很困惑,从来不知道这个实验设计/构建软件是如此复杂! 我是一个快速学习者,但仍然是一个新手,所以请耐心等待。 是的,我已经搜索了我的问题的答案,但似乎没有类似问题的答案。
我有一个实验,有8个条件, 每个条件需要显示1个图像,从相似图像的文件夹中随机选择。 每个试验都需要不同(因此每个参与者都有不同的条件)并且每个条件的选定图像都不同。
因此; 条件 - 图像 A - 1到140 B - 1到80 等。
记录数据不是问题,因为这可以手工完成,但我只需要从预定义的组中随机选择图像。
我曾尝试使用代码随机化并随机播放订单,但无处可去。 请帮忙, 汤姆
答案 0 :(得分:1)
要生成检索文件夹img_folder
中随机图像的路径,这并不太难。您可以使用img_path_array = os.listdir('.../img_folder')
。使用0
(导入len(img_path_array)
使用此函数)随机生成random_index = randrange(len(img_path_array))
和random
之间的整数,并通过调用img_path_array[random_index]
获取对随机文件网址的访问权限。
答案 1 :(得分:1)
您有两件事要做:将8个事物的池的顺序随机化几次,并确保不会多次选择任何排列。
我首先要指出,希望你的参与者少于factorial(8)
,因为这是唯一安排的最大数量。
这是一种蛮力方法,可以生成所有输入列表(images
)的可能排列,然后将其洗牌;然后,您可以采取保证唯一的第一个 n 安排。
import itertools
import random
#images is a list of your images
orderings = list(itertools.permutations(images))
random.shuffle(orderings)
#now just take top n elements of orderings
现在我再次指出,当你有8个条件时这很好; 8!只有40320,这可以留在记忆中。对于任何大于10个条件的东西,你都会想要采用更复杂的方法。