我想编写一个实验,该实验应包含10个试验(10张图片),左侧或右侧显示。同时,在另一侧显示奇数或偶数。我想测量反应时间和反应(奇数或偶数)。我想我坚持试用结构。
仅仅定义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 :(得分:0)
您不一定需要循环位置或数字变量。相反,您可以提前为每个试验生成刺激参数,例如使用Psychtoolbox函数BalanceFactors
resize
这将返回因子'num_pos'和'evenodd'的等级组合,然后将其顺序随机化。因此,例如,在您的示例中保存在变量'trial'中的试验编号的编号位置将作为trialNumberPositions {trial}访问。请记住,您有8个独特的evenodd和num_pos组合,因此,为了使您的试验数量在各种条件下保持平衡,您将拥有4个倍数的试验总数(例如总共12个试验,而不是10个试验)。我没有包含pic_pos,因为pic_pos总是没有num_pos,因为在你的描述中,两个刺激永远不会出现在同一侧。
至于为什么没有显示您的号码,如果没有更多的实验脚本,很难说清楚。但是你目前正在将白色文字写入屏幕,背景是非白色的吗?