2013-07-02 93 views
1

我是谁试图写代码来运行特定的函数调用每10ms 1秒的时间跨度业余的Matlab的用户。我很难尝试让某些东西运行一段确切的时间;我曾尝试使用Tic和Toc,但这是在几秒钟内(我需要毫秒精度)。下面是我一直在玩的一些非常基本的代码,用getvelocity函数来读取数据。任何帮助将不胜感激,谢谢!毫秒计时器MATLAB

function [ velocity ] = Vel() 
i=1; 
timerID=tic; 

while (toc(timerID) <=2); 
    [v(i)]=vpx_GetTotalVelocity; 
    disp (v(i)); 
    i=i+1; 
end 
velocity=mean(v); 


end 

上面的代码运行两秒钟;但是,我想运行在ms精度。

回答

0

假设你具备的功能是足够快(不是一个简单的假设),你可以像这样实现它:

tic 
for t = 0.01:0.01:1 %If you want the first function call to start right away you can change this to 0:0.01:0.99 
    while toc < t 
    end 
    t %Put your function call here. 
end 

注意,0.01秒是10毫秒

+0

如果你只是要等待10毫秒在函数调用之间,使用它们之间的“暂停(0.01)”。 –

+0

暂停可能不够准确为... – 2013-07-02 22:29:48

+0

@Lama精度并没有真正提到,但确实是Java的Thread.sleep代码应被证明是更准确:http://undocumentedmatlab.com/blog/pause-for-the-更好/ –