【问题标题】:How to model time in matlab?如何在matlab中模拟时间?
【发布时间】:2016-08-31 07:45:53
【问题描述】:

我在 Matlab 中实现了一个方案,其中特定节点 A 在发送后等待时间段 t(由 A 范围内最远节点之间的距离和信号的传播速度定义)以获取来自一组节点的确认一个消息。如果它在时间段 t 内没有收到任何确认,它就会采取一些行动。 我不知道如何在 Matlab 中实现时间。有可能吗,还是我必须想办法解决?

【问题讨论】:

  • 您想等待特定的时间吗?如果是,您应该尝试pause 命令:mathworks.com/help/matlab/ref/pause.html 否则您可以创建一个数组或矩阵来存储每个时间步长的数据。
  • @RCaetano:谢谢先生您的回复...等待时间不是固定的...它取决于发送者和接收者之间的距离。我无法理解您评论的第二部分。你能解释一下吗?谢谢
  • 在 3D 世界(信号的位置)上有一个点移动的情况。您可以有一个大小为 [3xT] 的矩阵,其中列是 X、Y 和 Z 位置,每行表示信号在第 n 个时间步的位置。示例:[0 0 0; 0 1 0; 0 2 0; 0 3 0] 如果时间步长被定义为 0.5 秒,则意味着在时间 0 处信号位于 (0,0,0) 处,时间 0.5 处位于 (0,1,0) 处,依此类推。因此,您可以创建一个for 来循环矩阵,并为每一行添加一个pause(0.5) 或执行其他操作。如果您有一个位置取决于时间的公式,则可以创建矩阵

标签: matlab networking


【解决方案1】:

你可以使用MATLAB强大的datetime

例如:您想检查是否在可接受的延迟内(本例中为 40 毫秒)接收到信号:

% t = datetime(Y,M,D,H,MI,S,MS);
send = datetime(2016,08,31,06,01,00,00);
receive=datetime(2016,08,31,06,01,00,100);
acceptableDelay=datenum(40/(24*60*60*1000));

   if ((receive-send)<acceptableDelay)
       disp('Well received!')
   else
       disp('Late!')
   end

【讨论】:

  • 还有一个问题。对于 x=(receive-send) 我得到 x=00:00:00 ,其中接收和发送包含不同的时间值。我怎样才能将 x 的确切值显示到毫秒。最好的问候
  • 尝试 [datestr] (mathworks.com/help/matlab/ref/…) 显示偶数毫秒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 2013-06-19
  • 2020-05-18
相关资源
最近更新 更多