我使用的代码中有什么东西可以使我的时间错误吗?

时间:2014-09-30 16:47:43

标签: matlab timing psychtoolbox

我正在尝试确定设置显示两个连续图像所需的时间。我有一个'for'循环显示图像并对它们进行计时,然后在直方图上绘制结果。我对ms准确性感兴趣,但到目前为止结果令人沮丧,并且想知道它是否是我的代码而不是设置。我使用的是Matlab和psychtoolbox,代码如下:

clear all;
close all;
clc;
Screen('Preference','SkipSyncTests',0);
PsychDefaultSetup(0);
screenNumber = 0;
wPtr = PsychImaging('OpenWindow',screenNumber,1,[],[],2);

black = imread('aonlyblacksep.bmp');
white = imread('white.bmp');

i  = zeros(0,150);

for i = 1: 150
    tic
    Screen('PutImage',wPtr,black);
    Screen ('Flip',wPtr,screenNumber); 
    WaitSecs(0.01667);
    Screen('PutImage',wPtr,white);
    Screen ('Flip',wPtr,screenNumber); 
    WaitSecs(0.01667);
    toc 

    elapsedTime(i) = round(toc*1000);
    data = elapsedTime;
end
figure
hist(data);

fclose ('all'); 
clear mex;
sca;

我现在已将'data = elapsedTime向下移出循环,将Psychdefault设置更改为2并且在flip命令中输入不清除为1但是我仍然得到32ms的读数应该是16ms翻转。 '令人沮丧的结果是',我不知道我是否真的通过这段代码测量翻转的速度。

0 个答案:

没有答案