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