2017-03-01 15 views
0

왼쪽 또는 오른쪽에 표시된 10 가지 시도 (10 장의 그림)로 구성된 실험을 프로그래밍하고 싶습니다. 동시에 반대쪽에 홀수 또는 짝수가 표시됩니다. 반응 시간과 응답 (홀수 또는 짝수)을 측정하고 싶습니다. 나는 재판 구조에 붙어있는 것 같아.trial structure psychtoolbox 실험

그냥 ntrials = length(pictures)을 정의하는 것으로 충분합니까? 아니면 변수 (pic_position, number_position)에 for 루프가 필요합니까?

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}로 액세스됩니다. 예를 들어 evenodd와 num_pos의 4 가지 고유 한 조합이 있으므로 시험 횟수가 여러 조건에서 균형을 이루기 위해서는 총 횟수가 4의 배수입니다 (예 : 총 12 회, 총 10 회가 아닌). pic_pos는 항상 num_pos가 아니기 때문에 pic_pos를 포함하지 않았습니다. 설명에서 두 자극은 결코 같은면에 나타나지 않을 것입니다.

숫자가 표시되지 않는 이유는 실험 스크립트를 더 이상 사용하지 않으면 알 수 없습니다. 하지만 현재 흰색 텍스트를 화면에 쓰고 있는데 배경이 흰색이 아닌가?