2013-07-02 118 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-更好/ –