通过计划的时间步

时间:2015-02-12 16:56:21

标签: matlab debugging time

我有一个用C语言编写的程序,我希望在毫秒内逐步完成并在运行时更改输入变量。我相信Matlab可以做到这一点,但我不确定如何。我设置了一个mexFunction来在Matlab中运行我的代码但是无法弄清楚如何在正确的时间更改变量。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您不能依赖OS线程调度程序以毫秒分辨率可靠地调度线程执行。要获得高分辨率,您需要旋转等待:

function fixed_interval(f,dt)
t = tic;
i = 0;
while true
  while toc(t)<i*dt
  end
  f();
  i=i+1;
end

或者

function fixed_delay(f,dt)
while true
  t=tic;
  while toc(t)<dt
  end
  f();
end

话虽如此,根据您的需要,如果您不喜欢使用100%CPU的想法,并且因为您仍在使用C;你可以尝试一下这里给出的答案,并在你的mex中展示C语言的睡眠功能:How to make thread sleep less than a millisecond on Windows