首页 > 其他 > 详细

厦门大学matlab第四次课程笔记 PTB的简单讲解

时间:2020-01-23 23:44:27      阅读:148      评论:0      收藏:0      [点我收藏+]

主要内容简介:1.打开窗口;2.绘制图像;3.记录被试按键反应;4.记录被试鼠标反应

%  memory命令可以返回当前计算机的内存信息

%  PTB初期可以调小窗口进行调试

%   [wptr,~]=Screen(‘OpenWindow‘,0,0,[50 50 800 600]);  打开一个窗口。第一个参数是命令;第二个参数是把打开的窗口呈现在外接的屏幕上,0表示同一窗口呈现在两个显示器上,1表示在1号显示器,2表示2号显示器;第三个参数是窗口的背景色;第四个参数设置窗口的大小和位置。

%  [x,y]=WindowCenter(wptr);   获取打开窗口的中点
%  pic=imread(‘701.jpg‘);  获取图像的矩阵
     pic2=Screen(‘MakeTexture‘,wptr,pic);  将图像矩阵转换为OpenGL纹理并返回其句柄
     Screen(‘DrawTexture‘,wptr,pic2,[],[x-150,y-150,x+150,y+150]);  通过该句柄将纹理绘入指定窗口
     Screen(‘Flip‘,wptr);  执行“”翻转“”命令,将图像显示在显示器上
     WaitSecs(5);    等待5秒钟,即图像显示5秒钟

pic=imread(701.jpg);
pic2=Screen(MakeTexture,wptr,pic);
Screen(DrawTexture,wptr,pic2,[],[x-150,y-150,x+150,y+150]);
Screen(Flip,wptr);
WaitSecs(5);

%  只要两个图像位置不重叠,是可以在一个画板上显示很多图像的

pic=imread(702.jpg);
pic2=Screen(MakeTexture,wptr,pic);
Screen(DrawTexture,wptr,pic2,[],[x-300,y-150,x,y+150]);
pic=imread(703.jpg);
pic2=Screen(MakeTexture,wptr,pic);
Screen(DrawTexture,wptr,pic2,[],[x,y-150,x+300,y+150]);
Screen(Flip,wptr);

 

%  [string,terminatorChar] = GetEchoString(wptr,‘_‘,x+100,y+200,255,0); 这个函数是用来监听被试的的输入的字符的;‘-’是提示/抬头;后两个参数是抬头的位置;最后两个输入的字的颜色和输入框的背景色  按enter键输入完毕并继续。若需要记录数字信息,如被试编号,则可以将String改为number,具体可以查询相关函数

%  下面是当被试做出指定的按键反应的时候,实验程序才会继续的一段代码

con=KbName(return); %return 就是回车键
tb1=GetSecs; %记录当前时间
while 1; %一直循环
  [KD,SECS,KC]=KbCheck; %查询键盘状态
  tb2=GetSecs; %记录当前时间
  if KC(con); % 检测return键是否被按
     rt=tb2-tb1;  %计算反应时
     break;  %跳出当前循环
  end
end

%  下面是当被试做出鼠标按键反应的时的实验程序的一段代码

clear all;close all;
[wptr,~]=Screen(OpenWindow,0,255,[50 50 450 250]);
Screen(DrawText,wptr,Left button: Draw a Circle);
Screen(DrawText,wptr,Right button: Exit,0,20);
Screen(Flip,wptr);
while true %一直循环
    [x,y,buttons]=GetMouse(wptr);%检测当前窗口的鼠标状态,x与y表示鼠标的坐标位置,button有3个值,1是左键,2是中间键,3是右键
    if buttons(3)  %若按了右键
        break; %跳出当前循环
    elseif buttons(1) %若按了左键
        Screen(DrawText,wptr,Left button: Draw a Circle,0,0);
        Screen(DrawText,wptr,Right button: Exit,0,20);
        Screen(FillOval,wptr,0,[x-10 y-10 x+10 y+10]);%后两个参数是颜色和位置
        Screen(Flip,wptr);
    end
end
sca;

%  sca是Screen(‘CloseAll‘)的简写,关闭所有窗口,多用于实验结束的时候

厦门大学matlab第四次课程笔记 PTB的简单讲解

原文:https://www.cnblogs.com/zxpsyneuroscience/p/12231684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!