试验结构psychtoolbox实验

时间:2017-03-01 13:24:53

标签: matlab structure drawtext trial psychtoolbox

我想编写一个实验,该实验应包含10个试验(10张图片),左侧或右侧显示。同时,在另一侧显示奇数或偶数。我想测量反应时间和反应(奇数或偶数)。我想我坚持试用结构。

仅仅定义ntrials = length(pictures)还是我需要变量的for循环(pic_positionnumber_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);

不幸的是,它没有向我显示这个数字。

1 个答案:

答案 0 :(得分:0)

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

resize

这将返回因子'num_pos'和'evenodd'的等级组合,然后将其顺序随机化。因此,例如,在您的示例中保存在变量'trial'中的试验编号的编号位置将作为trialNumberPositions {trial}访问。请记住,您有8个独特的evenodd和num_pos组合,因此,为了使您的试验数量在各种条件下保持平衡,您将拥有4个倍数的试验总数(例如总共12个试验,而不是10个试验)。我没有包含pic_pos,因为pic_pos总是没有num_pos,因为在你的描述中,两个刺激永远不会出现在同一侧。

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