标签: linear-interpolation

SQL Server 插入丢失的行

我有下表记录了每天的值。问题是有时几天不见了。我想编写一个 SQL 查询,它将:

  1. 归还失踪的日子
  2. 使用线性插值计算缺失值

所以从下面的源表:

Date           Value
--------------------
2010/01/10     10
2010/01/11     15
2010/01/13     25
2010/01/16     40
Run Code Online (Sandbox Code Playgroud)

我要回:

 Date           Value
 --------------------
 2010/01/10     10
 2010/01/11     15
 2010/01/12     20
 2010/01/13     25
 2010/01/14     30
 2010/01/15     35
 2010/01/16     40
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

t-sql missing-data linear-interpolation

5
推荐指数
1
解决办法
3422
查看次数

直接数字合成中的线性插值

我正在研究C中的微控制器DDS项目,并且在确定如何计算线性插值以平滑输出值方面遇到了一些麻烦.现在的程序
使用24位累加器的前8位作为8位输出值数组的索引.我需要提出一个函数,它将占用累加器的中间和低位字节,并在数组中的"previous"和"next"值之间生成一个值.这对于快速硬件来说足够简单,但由于我使用的是微控制器,我真的需要避免做任何浮点运算或划分!

有了这些限制,我不确定如何从我的两个8位输入数字和累加器的低2个字节获得8位插值,这表示两个输入值之间的"距离".提前感谢任何建议!

澄清

DDS =直接数字合成

在DDS中,使用相位累加器从查找表生成波形.相位累加器通常包含整数分量和分数分量.整数组件用作查找表的索引.在简单的DDS实现中,忽略小数部分,但是对于更高质量的输出,小数分量用于在相邻查找表值之间进行内插(通常只是线性内插).对于上述问题,我们正在研究如何在给定分数f,其中的两个查找表值之间有效地执行此线性插值0 <= f < 1.

c avr linear-interpolation

5
推荐指数
1
解决办法
2343
查看次数

Pandas 使用新长度对数据框进行插值

我有一个包含日期时间、纬度、经度、z 列的数据框。我正在从 csv 文件中读取数据,因此设置日期时间的时间段不起作用。时间以 6 小时为间隔,但我想将数据线性插入到每小时间隔。

从...来

       'A'              'B'    'C'   'D'
0   2010-09-13 18:00:00 16.3 -78.5    1
1   2010-09-14 00:00:00 16.6 -79.8    6 
2   2010-09-14 06:00:00 17.0 -81.1    12
Run Code Online (Sandbox Code Playgroud)

       'A'              'B'    'C'   'D'
1   2010-09-13 18:00:00 16.3  -78.5   1      
2   2010-09-13 19:00:00 16.35 -78.7   2
3   2010-09-13 20:00:00 16.4  -78.9   3
4   2010-09-13 21:00:00 16.45 -79.1   4
5   2010-09-13 22:00:00 16.5  -79.3   5
....
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用 interpolate 命令,但没有关于数据帧新长度的参数。

df.interpolate(method='linear')
Run Code Online (Sandbox Code Playgroud)

我在想我可以使用 .loc 在数据帧的每行之间包含 5 行 NAN,然后使用插值函数,但这似乎是一个糟糕的解决方法。

解决方案 使用DatetimeIndex消除了与其他列的关联,如果您最初的列并没有被导入为日期时间。

i = pd.DatetimeIndex(start=df['A'].min(), …
Run Code Online (Sandbox Code Playgroud)

python linear-interpolation pandas

5
推荐指数
1
解决办法
1497
查看次数

带有线性插值的 Numpy 百分位数 - 错误的值?

百分位数的线性插值公式为:

线性:i + (j - i) * 分数,其中分数是被 i 和 j 包围的索引的小数部分。

假设我有这个包含 16 个观察值的列表:

test = [0, 1, 5, 5, 5, 6, 6, 7, 7, 8, 11, 12, 21, 23, 23, 24]
Run Code Online (Sandbox Code Playgroud)

我将它作为一个 numpy 数组传递并使用线性插值计算第 85 个百分位数。

np_test = np.asarray(test)
np.percentile(np_test, 85, interpolation = 'linear')
Run Code Online (Sandbox Code Playgroud)

我得到的结果是22.5。但是,我不认为这是正确的。第 85 个百分位的指数是 0.85 * 16 = 13.6。因此,小数部分是 0.6。第 13 个值是 21,所以 i = 21。第 14 个值是 23,所以 j = 23。然后线性公式应该产生:

21 + (23 - 21) * .6 = 21 + 2 …

python numpy percentile linear-interpolation

5
推荐指数
1
解决办法
4121
查看次数

在 R 中执行常量插值

我有一组数据,例如:

x<-c(1, 2, 3, 4, 5, 6)
y<-c(100, 110, 121, 133.1, NA, 161.051)
Run Code Online (Sandbox Code Playgroud)

现在,y显然以 10% 的恒定速度增长。

我希望能够在 处插入数据x=5,并且我想打印146.41作为答案。但是,这个函数似乎并没有这样做:

approx(x,y,5)
Run Code Online (Sandbox Code Playgroud)

这会打印147.0755,这不是我正在寻找的答案。

approx(x,y,5,method="constant")
Run Code Online (Sandbox Code Playgroud)

也不行。

我哪里错了?

interpolation r linear-interpolation

4
推荐指数
1
解决办法
1015
查看次数

加快插值练习

我在大约120万次观测中运行了大约45,000个局部线性回归(基本上),所以我很感激一些帮助试图加快速度,因为我很不耐烦.

我基本上是在为一堆公司构建逐年工资合同 - 职能工资(给予公司,年份,职位的经验).

这是我正在使用的数据集(基本结构):

> wages
         firm year position exp salary
      1: 0007 1996        4   1  20029
      2: 0007 1996        4   1  23502
      3: 0007 1996        4   1  22105
      4: 0007 1996        4   2  23124
      5: 0007 1996        4   2  22700
     ---                              
1175141:  994 2012        5   2  47098
1175142:  994 2012        5   2  45488
1175143:  994 2012        5   2  47098
1175144:  994 2012        5   3  45488
1175145:  994 2012        5   3  47098
Run Code Online (Sandbox Code Playgroud)

我想为所有公司构建0到40经验水平的工资函数,a:

> salary_scales
        firm year position exp …
Run Code Online (Sandbox Code Playgroud)

interpolation r linear-interpolation extrapolation data.table

4
推荐指数
1
解决办法
461
查看次数

R中的线性插值(lm),奇怪的行为

使用R 3.2.2,我发现了一个运行简单线性插值的奇怪行为.第一个数据框给出了正确的结果:

test<-data.frame(dt=c(36996616, 36996620, 36996623, 36996626), value=c(1,2,3,4))
lm(value~dt, test)$coefficients

  (Intercept)            dt 
-1.114966e+07  3.013699e-01 
Run Code Online (Sandbox Code Playgroud)

通过递增dt变量,系数现在为NA:

test$dt<-test$dt+1
lm(value~dt, test)$coefficients

(Intercept)          dt 
        2.5          NA 
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?似乎某处有溢出?

谢谢 !

r linear-interpolation lm

4
推荐指数
1
解决办法
435
查看次数

如何将(lerp)范围输入线性插入到范围输出?

我想在一系列输入值之间(例如,在 A 和 B 之间)进行一般性插值,并获得一系列输出值(例如,在 C 和 D 之间)。有时我想限制值(以便 B+10000 仍然输出 D),有时我不想。我该怎么做?

例如,输入速度在 20 mph 到 80 mph 之间,我想在 17 到 15 之间调整地图的缩放级别:

无夹紧

     | \ 
     |  \
 17  |   \
     |    \
     |     \
     |      \
     |       \
 15  |        \
     |         \
     +----------\-
        20  80   \
Run Code Online (Sandbox Code Playgroud)

带夹紧

     |
 17  |----
     |    \
     |     \
     |      \
     |       \
 15  |        ----
     |
     +------------
        20  80    
Run Code Online (Sandbox Code Playgroud)

我找到了这个实用函数,但是(a)它本身不支持钳位,需要第二个函数调用,并且(b)它只支持 0 和 1 之间的输入。

javascript algorithm linear-interpolation

4
推荐指数
1
解决办法
1609
查看次数

在r的向量边界处填充NA

我有一个在边界处包含NA的向量

x <- c(NA, -1, 1,-1, 1, NA, -1, 2, NA, NA)
Run Code Online (Sandbox Code Playgroud)

我希望结果是:

c(-3, -1, 1,-1, 1, 0, -1, 2, 5, 8)
Run Code Online (Sandbox Code Playgroud)

换句话说,我想用线性插值来填充内部和边界NA(也许我不能称其为“ inter- polation”,因为NA处于边界)。

我在“ zoo”包na.fill(x,“ extend”)中尝试了一个函数,但是边界输出不是我想要的东西,它只重复最左边或最右边的非NA值:

na.fill(x,"extend")
Run Code Online (Sandbox Code Playgroud)

输出是

[1] -1 -1  1 -1  1  0 -1  2  2  2
Run Code Online (Sandbox Code Playgroud)

我还检查了用于填充NA的其他函数,例如na.approx(),na.locf()等,但是它们都不起作用。

na.spline确实可以工作,但是边界NA的输出导致极大的变化。

na.spline(x)
Run Code Online (Sandbox Code Playgroud)

输出为:

 [1] -15.9475983  -1.0000000   1.0000000  -1.0000000   1.0000000   0.3400655  -1.0000000   2.0000000
 [9]  13.1441048  35.9323144
Run Code Online (Sandbox Code Playgroud)

边界点太大。谁能帮我吗?提前致谢!

r linear-interpolation zoo na

4
推荐指数
1
解决办法
100
查看次数

如何用JS制作无限字幕?

我正在尝试制作一个在滚动时加速的无限选框,https://altsdigital.com/你可以在这个网站上看到效果,文字说“不是你通常的 SEO 机构”,当你滚动时它会加速。

这是我尝试过的,但它不起作用。它不会在没有重叠的情况下正确循环(请注意页面的左侧,您会注意到文本短暂重叠,然后向左平移以创建间隙),我不确定如何修复它:

这是代码(文本仅在“全页”视图上可见):

const lerp = (current, target, factor) => {
    let holder = current * (1 - factor) + target * factor;
    holder = parseFloat(holder).toFixed(3);
    return holder;
};

class LoopingText {
    constructor(DOMElements) {
        this.DOMElements = DOMElements;
        this.lerpingData = {
            counterOne: { current: 0, target: 0 },
            counterTwo: { current: 100, target: 100 },
        };
        this.interpolationFactor = 0.1;
        this.speed = 0.2;
        this.render();
        this.onScroll();
    }

    onScroll() {
        window.addEventListener("scroll", () => {
            this.lerpingData["counterOne"].target += this.speed * 5;
            this.lerpingData["counterTwo"].target …
Run Code Online (Sandbox Code Playgroud)

html javascript css animation linear-interpolation

4
推荐指数
1
解决办法
4454
查看次数