我有一个n维矩阵, funtointerpolate
,我希望沿其中一个轴执行一维插值(让我们称之为轴 m
) . 在Python中,插值函数(如 interp1d
)允许指定插值轴 . 在MATLAB中,我看不到使用 interp1
或任何其他内置插值函数的明显方法 . 理想情况下,该功能看起来像
interpolatedfun = interp1(funtointerpolate,oldpoints,newpoints,axis = m)
解决这个问题的一个显而易见的方法是在 funtointerpolate
中遍历所有其他轴,但这相当麻烦 . 插值的动机是沿着 m
轴沿着非均匀网格计算 funtointerpolate
中的数据 . 我需要它沿着 m
制服 . 在数学上,假设我有一些张力对象
A_{ijk}
沿着j索引沿着非均匀网格进行评估 . 然后,我希望找到一个新的 A
,使得第j个索引由在统一网格上计算的值组成 . 我知道第j个索引的新统一网格 newpoints
和旧网格 oldpoints
.
1 回答
您可以使用interpn函数来实现此目的:
其中
V
是你的输出 .(当然上面是伪代码,但它应该很好地说明解决问题的方法 . )