问题标签 [linear-interpolation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1431 浏览

matlab - Matlab的imrotate怎么这么快?

我正在尝试编写自己的使用线性插值的图像旋转函数(参见下面的代码)。在示例 256x256 图像上运行我的代码大约需要 8 秒,即每像素约 0.12 毫秒。在同一张图像上使用双线性插值运行 Matlab 的 imrotate 函数大约需要 0.2 秒,或每像素约 0.003 毫秒 - 大约提高了一百倍。

我猜我缺少一些矢量化优化,但我不知道在哪里。非常感谢任何建议。

代码如下;

0 投票
1 回答
3294 浏览

c# - C#/Unity3D 中的分段线性整数曲线插值

是否有一种简单、有效的方法可以在 C# 中实现分段线性整数到整数曲线插值(对于 Unity3D,如果重要的话)?
详情如下:

  • 分段线性曲线表示必须随着时间的推移而构建。第一个插值请求出现在我们拥有所有数据点之前
  • 曲线是严格单调的
  • 第一个点总是 (0, 0)
  • 数据点的第一个坐标也是严格单调的到达时间,即点按它们的第一个坐标自然排序。
  • 数据点不在会导致 4 字节整数溢出问题的范围内
  • 输出不必是 100% 准确,因此舍入误差不是问题。

在 C++ 中,我会做这样的事情:

我可以看到我如何在 C# 中做一些类似这样的工作,但没有什么简洁或高效的。任何帮助将不胜感激。

编辑:我不需要更准确,并且对分段线性插值非常满意,因此更好的插值质量不是我的问题。
我正在寻找的是一种高效、简洁的方法。高效,我的意思是:依靠数据点自然排序的事实,以便能够使用二进制搜索来找到正确的段

0 投票
1 回答
110 浏览

sql - 对表格执行插值,按第三个字段分组

我有一个包含三列的 SQL Server 2008+ 表:

我需要能够为给定日期的所有增量生成一个费率表,并在必要时进行插值。我可以对 Delta 的单个值执行此操作,但同时为所有 Delta 执行此操作让我感到难过。

一些示例数据是

到目前为止,我想出的最好的是:

Where@NextDate@PreviousDateare 从较早的计算中确定表中最接近测试日期的日期 ( @ForwardDate)。这是必需的,因为我们需要确保所有插值都在相同的两个日期之间(如果其中一个日期缺少一个值,则给出 NULL)。我不想在每个 delta 值的不同日期之间进行插值。

这给了我似乎是结果的交叉连接

每个增量有 5 个结果。如有必要,我可以SELECT DISTINCT这样做,但不禁认为这是作弊,我做错了什么。有没有更好的方法来消除对 的需要SELECT DISTINCT

0 投票
1 回答
110 浏览

matlab - 如何评估或绘制 SYM 对象?

我正在编写一个脚本来解决 matlab 中的拉格朗日插值问题。我是新手,我不知道它是如何工作的。

插值数据是下一个

然后我以这种方式构建多项式 od lagrange:

但是当我想评估它或者我想绘制它时,我不知道哪种方式。

有人能帮我吗?

0 投票
1 回答
1431 浏览

c - 线性插值:基于二维表计算校正

我尝试做的事情不过是二维线性插值,但目前我找不到正确的方法。为了简单地描述这个问题:有一个大小为 3000x3000 像素的绘图区域,我必须在其中绘制一条水平线。为此,我从每个像素位置到下一个像素位置绘制点或短线,然后形成一条线。

现在必须对整个事物进行校正,校正信息可以在(对于此示例简化的)4 x 4 数组中找到,其中每个元素都包含一对描述校正后值的坐标。所以一个中性数组(没有校正)看起来像这样:

一个真正的校正表将包含描述要完成的校正的其他坐标:

在此处输入图像描述

因此,作为输入数据,我有没有校正的线上点的坐标、没有校正的字段值和校正数据。但是我如何计算现在应用校正值的线点,以便绘制扭曲的线,如图像右侧所示?我目前对 X 和 Y 使用两个单独的线性插值的方法不起作用,Y 位置在单元格边界上跳跃,但在单元格内不会平滑变化。

那么......任何想法如何做到这一点?

0 投票
1 回答
242 浏览

math - 插值:根据3D表计算校正

这只是出于我个人的兴趣和线性插值问题的后续:基于 2D 表计算校正

当线和校正表使用三个维度时,计算会是什么样子 - 必须使用什么样的插值和公式?

谢谢!

0 投票
1 回答
5779 浏览

matlab - 在数组中的每个元素之间使用 MATLAB linspace

使用 MATLAB,我想在数组中的每个点之间进行线性插值。

使用interpolate将以非线性方式进行。我想做的类似于产生低通滤波器系数。

我想出了一个解决方案,但我想避免使用for循环:

没有循环可以做到这一点吗?

0 投票
1 回答
7144 浏览

function - lerp 函数的逆函数的通用名称是什么?

函数 lerp() 是编程语言中的常用函数:

现在对于很多情况,我有一个反函数:

这个函数是这样构建的

但是我对“分数”这个名字不满意。这个函数有通用名称吗?

0 投票
1 回答
361 浏览

r - 没有 for 循环或嵌套 ifelse 的分段线性变换

我正在尝试对我的数据执行分段线性变换。这是一个描述转换的示例表:

如果我定义x <- c(1.75, 2.5)了 ,我希望转换后的值是 2.75 和 6.5(我的元素将分别与 的第 2 行和第 3 行匹配dat)。

我知道如何for通过循环来解决这个问题,遍历 的行dat并转换相应的值:

虽然这可行,但让我感到震惊的是,应该有一种更好的方法将x值与行匹配dat,然后在单个计算中执行所有插值。有人可以为我指出for这个问题的非循环解决方案吗?

0 投票
1 回答
4971 浏览

c# - 使用 Math.Net Numerics 具有大 x 值的不正确线性插值

我正在尝试使用 Math.NET Numerics 对 DateTime - Value 系列进行插值。我从线性插值开始,但得到了一些看起来很不一样的结果。

运行此测试:

这给出了:

请注意,2.4285 是完全错误的。在不同的时间(不同的刻度值),不同的值将是“错误的”。Math.NET 中是否存在 x 值较大的“错误”,还是我期望过高?