【问题标题】:List interpolation for a list of datetime/values日期时间/值列表的列表插值
【发布时间】:2018-03-05 06:31:10
【问题描述】:

如果我使用了错误的术语,请原谅我,因为我不能 100% 确定我想做的事情是正确的,甚至是正确的术语。

我有一个带有时间戳和值的实体列表。时间戳的间隔不相似,例如第一个可能在 1:00:02,下一个在 1:00:03,然后在 1:00:10。

为了从数据中获取体面的信息,我需要将所有数据“间隔”均匀。输入插值。这基本上意味着我将在“不平衡”的不同时间跨度之间插入值,以便生成一组适当的数据。一切看起来都很简单。

当我试图找到要注入的 -what- 值时,我的问题就出现了,因为时间戳是一个日期时间,而毫秒数使得难以计算何时/使用什么。

我的第一个解决方案是将所有内容四舍五入到秒,并注销毫秒(我可以忍受),然后只注入每秒的值,该值是两个现有有效值的平均值,在给定时间。

在给定 N 个值的情况下,我似乎不知道该怎么做或在网上找到解决方案的替代方法是找到最小公分母。

有什么建议、想法或更正吗?

提前致谢。

【问题讨论】:

标签: c# math numbers timestamp interpolation


【解决方案1】:

“最小公分母”我理解您指的是不是典型数学意义上的 LCD,而是“时间戳之间的最小时间差”。

如果是这样,一种方法是:

  1. 构造一个包含 N 个时间戳的所有 pairwise timing differences 的列表。
  2. 从该列表中选择最小值。

对于您的示例,成对时间差异列表将是:0:01, 0:07, 0:08。 “最小公分母是0:01,即 1 秒。

我是否正确理解了您的问题?

【讨论】:

  • 正确。目前我有一个用两个实体构造的类,并包含一个“TimeDifference”。我从初始列表中创建了这些“差异”类的列表,所以我有一个所有差异的列表,根据您的示例,0、7、8。然而,我不认为它这么简单。如果我将示例更改为 0:02、0;07、0:08,则“LCD”不会是最小的 (2),但它仍然是 1。所以,如果我真的走这条路,我需要什么, 将是一个计算它的函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
  • 1970-01-01
相关资源
最近更新 更多