有没有一种方法可以在matlab中实现毫秒级的延迟



说"暂停"的帮助

PAUSE(n) pauses for n seconds before continuing, where n can also be a
fraction. The resolution of the clock is platform specific. Fractional
pauses of 0.01 seconds should be supported on most platforms.  

但在我的情况下,暂停(0.01(根本没有任何作用(暂停,用整数n的暂停(n(有效(

有没有办法在matlab中使毫秒级延迟(50ms,100~500ms(?

Matlab版本为

MATLAB Version 7.9.0.529 (R2009b)  

Windows 10 64位家庭版上的64位

我看到了两个选项。让我们将它们称为循环选项,并将其称为本机选项

%% looping
% desired time to wait
dt_des = 0.001; % 1 ms
% initialize clock
t_st = tic;
% looping
while toc(t_st) < dt_des
end
% read clock
toc(t_st)

本机选项正在使用pause(请确保已使用pause('on')启用过一次(。我从你的问题中假设这并不总是有效的——然而,它在我的系统(R2019b,windows 10(上确实有效。

%% use pause()
tic
pause(0.001)
toc

两者的结果都是

Elapsed time is 0.001055 seconds.
Elapsed time is 0.001197 seconds.

它不太准确,但如果你在电脑上调整数字,你可能会得到更好的结果。

您也可以使用

java.lang.Thread.sleep(10);

如果您使用的是旧版本的matlab,请参阅此处的讨论。

相关内容

  • 没有找到相关文章