0

我想编写一个实验,该实验应包含 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);

不幸的是,它没有显示我的号码。

4

1 回答 1

0

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

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

这将返回因子 'num_pos' 和 'evenodd' 的水平组合,然后它们的顺序是随机的。因此,例如保存在变量“试用”中的试用编号的编号位置,在您的示例中将作为试用编号位置{试用}访问。请记住,您有 4 种不同的 evenodd 和 num_pos 组合,因此要在不同条件下平衡试验次数,您的试验总数将是 4 的倍数(例如,总共 12 次试验,而不是 10 次)。我没有包括 pic_pos 因为 pic_pos 总是 num_pos 不是,因为在你的描述中,这两个刺激永远不会出现在同一侧。

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

于 2017-03-02T06:00:53.620 回答