Matlab 试结构心理箱实验

Matlab 试结构心理箱实验,matlab,structure,drawtext,trial,psychtoolbox,Matlab,Structure,Drawtext,Trial,Psychtoolbox,我想设计一个实验,它应该由10个试验(10张图片)组成,a显示在左边或右边。同时,另一侧显示奇数或偶数。我想测量反应时间和反应(奇数或偶数)。我想我被审判结构困住了 仅仅定义ntrials=length(pictures)就足够了吗?还是我需要变量的for循环(pic\u position,number\u position) 这是我目前的做法: pic_pos = {'left' 'right'}; num_pos = {'left' 'right'}; evenodd =

我想设计一个实验,它应该由10个试验(10张图片)组成,a显示在左边或右边。同时,另一侧显示奇数或偶数。我想测量反应时间和反应(奇数或偶数)。我想我被审判结构困住了

仅仅定义
ntrials=length(pictures)
就足够了吗?还是我需要变量的for循环(
pic\u position
number\u 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);

不幸的是,它没有显示数字。

您不必循环位置或数字变量。相反,您可以提前为每个试验生成刺激参数,例如使用Psychtoolbox函数BalanceFactors

[trialNumberPositions, trialNumberEvenOrOdd] = BalanceTrials(ntrials, 1, num_pos, evenodd);
这将返回因子“num_pos”和“evenodd”的级别组合,然后对其顺序进行随机化。因此,例如,在您的示例中,保存在变量“trial”中的试用编号的编号位置将作为TrialNumber Positions{trial}访问。请记住,您有4种独特的evenodd和num_pos组合,因此要在不同条件下平衡您的试验次数,您的试验总数应为4的倍数(例如,总共12次试验,而不是10次)。我没有包括pic_pos,因为pic_pos始终是num_pos不是的任何东西,正如在你的描述中,这两个刺激永远不会出现在同一侧

至于为什么你的号码没有显示出来,如果没有更多的实验脚本,很难说出来。但是您当前正在将白色文本写入屏幕,背景是否为非白色