使用 Akima 包线性插值:interp 用于非常不规则的网格

Posted

技术标签:

【中文标题】使用 Akima 包线性插值:interp 用于非常不规则的网格【英文标题】:Using Akima package linear interpolation: interp for a very irregular grid 【发布时间】:2017-10-06 15:49:42 【问题描述】:

我有下面的网格,其中一个函数只在点进行评估:

我无法设置数据 x、y 和 z,因此我可以使用

interp(x,y,z)

有谁知道这是否可能? Akima 说它支持不规则间隔的网格。

数据:

categoryvector=21
ninterp=4
points = seq(0,categoryvector,by=ceil(((categoryvector - 0)/(ninterp - 1))))
if(!categoryvector%in%points)points=c(points,categoryvector)
if(!1%in%points)points=c(points,1); points=sort(points)
keepers = data.table(expand.grid(prod1vint1=points,prod1vint2=points))
points1 = c(keepers$prod1vint1,0:categoryvector,rep(0,categoryvector+1),rep(categoryvector,categoryvector+1),0:categoryvector)
points2 = c(keepers$prod1vint2,rep(0,categoryvector+1),0:categoryvector,0:categoryvector,rep(categoryvector,categoryvector+1))

z =data.table(points1=points1,points2=points2,z=rnorm(length(points2),10,3))

制作网格:

【问题讨论】:

请分享一个可重现的例子。 @Axeman ok 添加了一个可重现的示例,尝试在 z 上插值或使用 interp 【参考方案1】:

我认为您正在寻找 interpp 而不是 interp

【讨论】:

所以这意味着我不必设置矩阵,并且可以有任何实际的凸点集来进行插值? 如果我没记错的话,你只需向它抛出一组坐标和值,它就会返回漂亮的网格值作为回报。(当然,你必须指定网格。) 它说它已被弃用并使用 interpp...这似乎是一个奇怪的警告,因为那是我使用的! 很奇怪!不理睬,勇往直前,就是我所说的。

以上是关于使用 Akima 包线性插值:interp 用于非常不规则的网格的主要内容,如果未能解决你的问题,请参考以下文章

scipy 0.11.0 到 0.12.0 更改了线性 scipy.interpolate.interp1d,破坏了我不断更新的插值器

matlab自带的插值函数interp1的四种插值方法

Matlab中插值函数

R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析用虚线标记进行数据填充的区域

matlab插值函数

numpy的一维线性插值函数