2013-12-11 45 views
1

我真的很感謝任何迴應。我很困惑,從來不知道這個實驗設計/構建器軟件太複雜了! 我是一個快速學習者,但仍然是新手,請耐心等待。 是的,我已經搜索了我的問題的答案,但沒有類似的問題的答案似乎工作。如何隨機化畫板中顯示的圖像

我有一個實驗,有8個條件, 每個條件需要顯示1個圖像,從相似圖像的文件夾中隨機選擇。 每個試驗需要不同(因此每個參與者坐在一組不同的條件),每個條件的選擇圖像將會不同。

所以; 條件 - 圖片 A - 1至140 乙 - 1至80 等。

記錄數據是沒有問題的,因爲這可以用手工完成,但我只需要圖像以從隨機選擇預先定義的組。

我已經嘗試過使用代碼隨機化和洗牌的順序,但無處可尋。 請幫忙, 湯姆

+0

那麼你究竟在哪裏絆倒?顯示圖像或生成隨機圖像? – Monkeyanator

+0

請發佈您到目前爲止的代碼以及您遇到的具體問題。你的問題太模糊,不能回答。 –

回答

1

要生成檢索文件夾中的隨機圖像的路徑img_folder,這不是太困難。您可以使用img_path_array = os.listdir('.../img_folder')。使用random_index = randrange(len(img_path_array))(導入random使用此函數)隨機生成0len(img_path_array)之間的整數,並通過調用img_path_array[random_index]訪問隨機文件url。

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個條件的任何情況,您都希望採取更復雜的方法。