假设您有以下三点A,B和C,如下图所示:

点总是根据它们的垂直偏移进行排序,因此最高点总是A.有时B和C可以具有相同的y坐标.
我正在尝试找到点D的x坐标.我可以通过插入点Ay和Cy来找到D的Y坐标(By /(Cy-Ay)).我正在使用以下公式进行插值(在C++中)
float linearInterpolation(float a, float b, float t)
{
return a + (t * (b - a));
}
Run Code Online (Sandbox Code Playgroud)
换句话说,Dy = linearInterpolation(Ay,Cy,(By-Ay)/(Cy-Ay))
总而言之,我的问题是:我如何找到Dx?
谢谢
-
回答:
只是为了澄清,这是建议和工作的解决方案:
D.x = A.x + (B.y - A.y) * (C.x - A.x) / (C.y - A.y);
D.y = B.y;
Run Code Online (Sandbox Code Playgroud)
如下图所示:

我正在尝试使用Math.NET Numerics来插入DateTime - Value系列.我开始使用线性插值,但是我得到了一些看起来非常不合适的结果.
运行此测试:
public class script{
public void check_numerics()
{
var ticks = DateTime.Now.Ticks;
Console.WriteLine("Ticks: " + ticks);
var xValues = new double[] { ticks, ticks + 1000, ticks + 2000, ticks + 3000, ticks + 4000, ticks + 5000 };
var yValues = new double[] {0, 1, 2, 3, 4, 5};
var spline = Interpolate.LinearBetweenPoints(xValues, yValues);
var ticks2 = ticks;
for (int i = 0; i < 10; i++)
{
ticks2 += 500;
Console.WriteLine(spline.Interpolate(ticks2));
}
}
} …Run Code Online (Sandbox Code Playgroud) 我的理解是,当计算R中的分位数时,扫描整个数据集并确定每个分位数的值.
如果你要求.8,例如它会给你一个在该分位数处出现的值.即使不存在这样的值,R仍将为您提供在该分位数处发生的值.它通过线性插值来实现.
但是,如果想要计算分位数然后向上/向下舍入到最接近的实际值,该怎么办?
例如,如果.80处的分位数值为53,那么当真实数据集只有50和54时,那么如何让R列出这些值中的任何一个?
这是我的代码:
var color = d3.scaleLinear()
.domain([0, 10000])
.interpolate(d3.interpolateBlues);
console.log(color(5000));
Run Code Online (Sandbox Code Playgroud)
而不是告诉我5000对应淡蓝色,我得到错误"r0不是一个函数".我究竟做错了什么?
对于LPC922微控制器(带SDCC),我想创建一个带线性插值的查找表.让我们假设我有x和y值
x=300 y=10,0201
x=700 y=89,542
x=800 y=126,452
x=900 y=171,453
x=1500 y=225,123
Run Code Online (Sandbox Code Playgroud)
具有线性插值的查找表的代码怎么样,所以我得到x = 850的正确值y((171,453 + 126,452)/ 2)?
我正在尝试回答这个 Udacity 问题:https ://www.udacity.com/course/viewer#!/c-st101/l-48696651/e-48532778/m-48635592
我喜欢 Python 和 Pandas,所以我使用 Pandas(0.14 版)
我有这个数据帧 df=
pd.DataFrame(dict(size=(1400,
2400,
1800,
1900,
1300,
1100),
cost=(112000,
192000,
144000,
152000,
104000,
88000)))
Run Code Online (Sandbox Code Playgroud)
我将这个 2100 平方英尺的值添加到我的数据框中(注意没有成本;这就是问题;您希望为2,100平方英尺的房子支付多少费用)
df.append(pd.DataFrame({'size':(2100,)}), True)
Run Code Online (Sandbox Code Playgroud)
该问题希望您使用线性插值来回答您希望支付的成本/价格。
熊猫可以插值吗?如何?
我试过这个:
df.interpolate(method='linear')
Run Code Online (Sandbox Code Playgroud)
但它给了我88,000的成本;只重复最后一个成本值
我试过这个:
df.sort('size').interpolate(method='linear')
Run Code Online (Sandbox Code Playgroud)
但它给了我172,000的成本;仅介于152,000和192,000 Closer的成本之间 ,但不是我想要的。正确答案是168,000(因为有 80 美元/平方英尺的“斜率”)
编辑:
我检查了这些问题
quantities库。我正在研究一个简单的线性插值程序。而且在实现算法时遇到了一些麻烦。假设总共有12个数字,我们让用户输入3个数字(位置0,位置6和位置12)。然后程序将计算其他数字。这是我的一段代码来实现:
static double[] interpolate(double a, double b){
double[] array = new double[6];
for(int i=0;i<6;i++){
array[i] = a + (i-0) * (b-a)/6;
}
return array;
}
static double[] interpolate2(double a, double b){
double[] array = new double[13];
for(int i=6;i<=12;i++){
array[i] = a + (i-6) * (b-a)/6;
}
return array;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用了两个函数。但是我想找到一个通用的功能来完成这项工作。但是,我不知道如何找到表示i-0和的通用方法i-6。如何解决?根据浮点线性插值,我知道也许我应该添加一个形式参数float f。但是我不太明白这float f意味着什么以及如何基于它修改我的代码。有人可以帮我吗?谢谢。
scipy.interpolate.interp1d(v0.17.0)中的文档为可选的fill_value参数说明以下内容:
fill_value:...如果是两元素元组,则第一个元素用作x_new <x [0]的填充值,第二个元素用于x_new x [-1].
因此,我在此代码中传递了一个两元素的tupe:
N=100
x=numpy.arange(N)
y=x*x
interpolator=interp1d(x,y,kind='linear',bounds_error=False,fill_value=(x[0],x[-1]))
r=np.arange(1,70)
interpolator(np.arange(1,70))
Run Code Online (Sandbox Code Playgroud)
但它抛出ValueError:
ValueError: shape mismatch: value array of shape (2,) could not be broadcast to indexing result of shape (0,1)
Run Code Online (Sandbox Code Playgroud)
谁能指点我,我在这里做错了什么?在此先感谢您的帮助.
我有一系列采样不均匀的指标。我想将这些指标线性插值和上采样到特定的采样频率。我尝试过使用 Accelerate Framework 和 SIMD 框架,但我不太确定该怎么做。
问题本身如下:
let original_times:[Double] = [0.0, 2.0, 3.0, 6.0, 10.0]
let original_values: [Double] = [50.0, 20.0, 30.0, 40.0, 10.0]
let new_times:[Double] = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找一种通过某种线性插值方法找到 new_values 的方法。
arrays interpolation linear-interpolation accelerate-framework swift
我有一个像这样的熊猫数据框
a b c
0 0.5 10 7
1 1.0 6 6
2 2.0 1 7
3 2.5 6 -5
4 3.5 9 7
Run Code Online (Sandbox Code Playgroud)
我想根据某个步骤填充与“a”列相关的缺失列。在本例中,给定步长 0.5,我想用缺失值(即 1.5 和 3.0)填充“a”列,并将其他列设置为空,以获得以下结果。
a b c
0 0.5 10.0 7.0
1 1.0 6.0 6.0
2 1.5 NaN NaN
3 2.0 1.0 7.0
4 2.5 6.0 -5.0
5 3.0 NaN NaN
6 3.5 9.0 7.0
Run Code Online (Sandbox Code Playgroud)
使用 pandas 或其他库(如 numpy 或 scipy)执行此操作的最简洁方法是什么?
谢谢!