计算数组中线性的元素

时间:2014-08-07 20:56:29

标签: arrays algorithm

我有一大堆元组(数据,时间) 部分数组包含具有线性斜率的数据。 阵列中的其他数据是非线性的。 我可以使用什么算法来确定 线性斜率从哪里开始? 衬里斜坡在哪里结束?

2 个答案:

答案 0 :(得分:2)

似乎很简单:

  1. 按时间排序元组
  2. (d1, t1), (d2, t2), (d3, t3), (d4, t4), etc成为连续元组
  3. 计算每个元组之间的梯度(斜率):(d2 - d1) / (t2 - t1), (d3 - d2) / (t3 - t2), etc.
  4. 如果多个连续元组之间的梯度相同(在误差范围内,具体取决于您的数据),那么这些连续元组必须在一条直线上。

答案 1 :(得分:0)

查找适用于异常值的线性回归的RANSAC算法。使用随机方法,RANSAC基本上会找到一个(近似)最大的点集,这些点在距公共线的指定距离内。