【问题标题】:Milliseconds timer matlab毫秒计时器matlab
【发布时间】:2013-07-02 04:55:34
【问题描述】:

我是一名业余 Matlab 用户,他正在尝试编写代码以在 1 秒的时间跨度内每 10 毫秒运行一次特定的函数调用。我无法让某些东西在确切的时间内运行;我曾尝试使用 Tic 和 Toc,但那是在几秒钟内(我需要毫秒精度)。这是我一直在尝试使用名为 getvelocity 的函数获取读数的一些非常基本的代码。任何帮助将不胜感激,谢谢!

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

上面的代码运行了两秒钟;但是,我想以毫秒精度运行。

【问题讨论】:

    标签: matlab timer milliseconds


    【解决方案1】:

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

    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 毫秒

    【讨论】:

    • 如果您只想在函数调用之间等待 10 毫秒,请在它们之间使用 pause(0.01)
    • @Lama Accuracy 并没有真正提到,但确实 Java 的 Thread.Sleep 应该被证明更准确:undocumentedmatlab.com/blog/pause-for-the-better
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多