Matlab Psytoolbox(脑与认知神经科学)
前言
脑与认知神经科学Matlab认知科学实验设计
1.题目
在屏幕中显示两个不同颜色的圆,并显示提示词:要求用户选择其中一个圆,并根据选择使用鼠标点击屏幕。等待用户点击屏幕,输出通过点击位置判定点击的是哪一个圆,并输出从显示图像到用户点击屏幕的时间。
2.分析设计要求
创建一个窗口显示信息,能够显示提示词、图片、结果、反应时间。
首先初始化窗口,利用Screen创建一个窗口,选定当前屏幕颜色,编写提示词,绘制出两个不同颜色的圆,检测鼠标移动以及是否确定,显示结果与反应时间。
代码等资源:请见主页资源
3.代码
try
Screen('Preference', 'SkipSyncTests'); %跳过刷新率检测
screens=Screen('Screens');
screenNumber=max(screens); % 第一个屏幕就是0
[w,wsize]=Screen('OpenWindow',screenNumber,255,[100,100,1900,1000]);%打开窗口并返回两个重要变量
Screen('Flip',w);
Screen('DrawText',w,'请通过鼠标左键来选择一张图像',600,200,[255,0,0])
Screen('Flip',w);
WaitSecs(2)
%画两个颜色不同的圆
A=["绿色","红色"]
num=ceil(rand*2)
str=A(num)%显示随机字符串,rand产生0/1的浮点数,乘以2以后向上取整,只可能随机为1或者2,可以随机数组里面的字符串
Screen('FillRect',w,255);
Screen('FillOval',w,[0,255,0],[710,330,1150,770]-[400,0,400,0])
Screen('FillOval',w,[255,0,0],[710,330,1150,770]+[400,0,400,0])
Screen('DrawText',w,num2str(str),900,200,[255,0,0])
Screen('Flip',w);
time1=GetSecs; %计时开始
while 1
[mx,my,button]=GetMouse;%不断检测鼠标移动
disp([mx,my]);
if button(1)==1 %检测鼠标左键是否按下
break
end
end
time=GetSecs-time1;
%选择情况对应输出结果
if mx>=310 && mx<=750 && my>=330 && my<=770 && num==1
Screen('DrawText',w,'恭喜你,选对了!',680,400,[255,0,0])
elseif mx>=1110 && mx<=1550 && my>=330 && my<=770 && num==2
Screen('DrawText',w,'恭喜你,选对了!',680,400,[255,0,0])
else
Screen('DrawText',w,'选错了哦!',750,500,[255,0,0])
end
Screen('DrawText',w,'你的反应时间为',600,600,[255,0,0])
Screen('DrawText',w,num2str(time),900,600,[255,0,0])
Screen('DrawText',w,'秒',1050,600,[255,0,0])
Screen('Flip',w);
WaitSecs(2)
Screen('CloseAll');%sca;
catch
sca;
end
注意,各位使用的时候,要将引用的图片地址更改为自己的图片地址,我已上传资源,包含源码截图,总结等等,可直接运行。
总结
非常感谢您的观看,我上传的资源全部是免费下载,欢迎来我主页看看,请关注一下新人,我会非常努力的更新您需要的东西。