2017-03-01 52 views
0

我想編程一個實驗,該實驗應包含10個試驗(10張圖片),左側或右側顯示。同時在對面顯示一個奇數或偶數。我想測量反應時間和反應(奇數或偶數)。我想我堅持試驗結構。試驗結構psychtoolbox實驗

僅僅定義ntrials = length(pictures)還是我需要變量的for循環(pic_position,number_position)就足夠了嗎?

這是我的做法至今:

pic_pos = {'left' 'right'}; 
    num_pos = {'left' 'right'}; 
    evenodd = {'odd' 'even'}; 

    ntrials = length(pictures); 

    for n = 1:length(pictures) 
    trials(ntrials).picture = pictures(n) 
    end 

    pictures = Shuffle(pictures); 

    for trial = 1:ntrials 

    currentnumber = num2str(numbers{trial}) 

    switch trials(trial).num_pos 
    case 'right' 
    x = screencentrex + img_dist 
    case 'left' 
    x = screencentrex - img_dist 
    end; 

Screen('TextSize', win, [25]); 

DrawFormattedText(win, currentnumber, [x], 'center', [255 255 255]); 

Screen('Flip', win); 

WaitSecs(3); 

遺憾的是它不顯示我的號碼。

回答

0

您並不需要遍歷位置或數字變量。相反,可以使用Psychtoolbox函數BalanceFactors

[trialNumberPositions, trialNumberEvenOrOdd] = BalanceTrials(ntrials, 1, num_pos, evenodd); 

這將返回的因素「num_pos」的水平和「EVENODD」,訂單可放置的組合產生用於提前每個試驗中的刺激參數,例如然後隨機化。因此,例如,在您的示例中,保存在變量「trial」中的試用編號的編號位置將作爲trialNumberPositions {trial}進行訪問。請記住,您有4種獨特的evenodd和num_pos組合,因此爲了讓您的試驗號碼在各種條件下保持平衡,您的試驗總數將是4的倍數(例如總共12次試驗,而不是10次)。我沒有包含pic_pos,因爲pic_pos總是不管num_pos不是什麼,因爲在你的描述中,兩個刺激永遠不會出現在同一側。

至於爲什麼你的號碼沒有被顯示,很難說沒有更多的實驗腳本。但是你目前在屏幕上寫白色文字,背景是非白色的?