You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

akima包bilinear.grid函数异常行为技术咨询

问题分析与解决

这属于对akima::bilinear.grid参数逻辑的误解,该现象不正常,是参数使用方式错误导致的。

核心原因

bilinear.grid的nx/ny参数并非基于你传入的x/y实际坐标范围生成等距点,而是默认在输入x/y向量的索引维度上生成指定数量的点。而xlim/ylim参数仅用于裁剪生成后的结果,无法改变初始生成点的范围,这就是你得到非预期x序列的原因。

正确实现方式

要生成基于实际坐标范围的指定数量插值点,需要手动用seq()生成目标x/y坐标序列,通过xo/yo参数传入,而非依赖nx/ny:

my_x = c(1, 5, 20)
my_y = c(2, 9)
my_matrix = matrix(c(1,3,7,3,2,1), ncol=2)

# 生成目标坐标序列:1到20共7个点,2到9共3个点
target_x = seq(from = 1, to = 20, length.out = 7)
target_y = seq(from = 2, to = 9, length.out = 3)

# 传入xo/yo参数执行插值
my_result_fixed = akima::bilinear.grid(
  x = my_x, 
  y = my_y, 
  z = my_matrix, 
  xo = target_x, 
  yo = target_y
)

此时my_result_fixed$x会是1到20的7个等距点,my_result_fixed$y是2到9的3个等距点,输出的z矩阵为7×3,完全符合预期。

内容的提问来源于stack exchange,提问作者Seb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:42:49