首页 文章

在MATLAB中插补指定的轴

提问于
浏览
1

我有一个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 回答

  • 2

    您可以使用interpn函数来实现此目的:

    newV = interpn(oldAx1, ..., oldAxM, ..., oldAxN, oldV, ...
                   oldAx1, ..., newAxM, ..., oldAxN);
    

    其中 V 是你的输出 .

    (当然上面是伪代码,但它应该很好地说明解决问题的方法 . )

相关问题