为了工作,我需要编写一个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上很糟糕。谢谢。
答案 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