Matlab计时程序

时间:2016-08-28 18:38:02

标签: matlab

为了工作,我需要编写一个Matlab程序,它会在设定的时间后触发刺激(TTL脉冲)。首先,我需要程序等待32分钟。然后,我希望它执行刺激脉冲,等待5秒,再次执行刺激脉冲,然后再等待115秒。我需要它做5次迭代(不包括32分钟的等待期)。

我对Matlab语法很糟糕。我使用Python一点点,但这个特殊的功能需要Matlab,因为它有一个与刺激生成器一起使用的工具包。

对于它的价值,现有代码中出现的触发输出如下所示:

if i > 1
    % insert output trigger for page 1
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE;
  end;

这是我对代码循环部分的蹩脚尝试,它给了我各种语法错误:

% Use for loop for 5 iterations
for i = 1:5
    % trigger TTL pulse
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE;
    % trying to use tic and toc as a timer that resets each iteration
    timerID = tic;
    % I thought to use a while loop for the timing
    % 5 second wait period
    while true
        if(toc(timerID)>5)
            break;
        end
    % trigger TTL pulse again
    pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE;
    % 115 second wait period
    while true
        if(toc(timerID)>120)
            break;
        end
end

这就是我所拥有的一切。任何帮助都将非常感激。请随意告诉我是否需要使用完全不同的方法,因为我知道我在Matlab上很糟糕。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用pause。尝试这样的事情:

pause(32*60);  % Pause 32 minutes
for ii = 1:5
   pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE;
   pause(5);
   pages(1).Page = 1 + VSG.DUALPAGE + VSG.TRIGGERPAGE;
   pause(115);
end