我真的很感谢你的回复。我完全被搞糊涂了,从来不知道这个实验设计/构建软件是如此复杂!我学得很快,但还是个新手,所以请耐心等待。是的,我已经用谷歌搜索了我的问题的答案,但似乎没有类似问题的答案。
我有一个实验,有8个条件,每个条件需要显示1张图像,从相似图像的文件夹中随机选择。每个试验需要不同(因此每个参与者坐在一个不同排序的条件集上),并且每个条件的选择图像将是不同的。
因此;条件-图像A-1到140 B-1到80等。
记录数据不是一个问题,因为这可以手动完成,但我只需要从预定义的组中随机选择图像。
我尝试过使用代码对顺序进行随机化和打乱,但一无所获。请帮帮忙,汤姆
发布于 2013-12-11 10:06:14
要生成和检索文件夹img_folder中随机图像的路径并不太难。您可以使用img_path_array = os.listdir('.../img_folder')。使用random_index = randrange(len(img_path_array))在0和len(img_path_array)之间随机生成一个整数(导入random即可使用此函数),并通过调用img_path_array[random_index]获取对随机文件url的访问权限。
发布于 2013-12-11 10:10:44
你有两件事要做:将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个条件的情况,您都需要采取更复杂的方法。
https://stackoverflow.com/questions/20509103
复制相似问题