【发布时间】:2019-05-10 13:14:37
【问题描述】:
我有一个 n 维矩阵 funtointerpolate,我希望沿它的一个轴(我们称之为轴 m)执行一维插值。在 Python 中,诸如interp1d 之类的插值函数允许指定插值轴。在 MATLAB 中,我看不到使用 interp1 或任何其他内置插值函数的明显方法。理想情况下,函数看起来像
interpolatedfun = interp1(funtointerpolate,oldpoints,newpoints,axis = m)
解决这个问题的一个明显方法是遍历funtointerpolate 中的所有其他轴,但这相当麻烦。插值的动机是funtointerpolate 中的数据沿m 轴的非均匀网格进行评估。我需要它与m 保持一致。在数学上,假设我有一些张量对象
A_{ijk}
沿着 j 索引的非均匀网格进行评估。然后,我希望找到一个新的A,这样第 j 个索引由在统一网格上评估的值组成。我知道第 j 个索引的新统一网格 newpoints 和旧网格 oldpoints。
【问题讨论】:
-
等一下...你到底是什么意思,在数学上或几何上,通过沿轴插值向量?由于每个维度的唯一数据是一个值,因此插值(或外推)只会返回相同的值,不是吗?你能用一个小例子说明你的意思吗? 3 维还是 4 维?
-
该功能类似于可以传入 fft:mathworks.com/help/matlab/ref/fft.html 的
dim参数 -
我很好奇你打算如何在单个数据点上执行
fft(因为size(funtointerpolate, anyDim) == 1))。也许你的意思是写“n维矩阵”而不是“n维向量”。 -
@Dev-iL 是的,这肯定是一个错字!立即编辑。
标签: matlab multidimensional-array interpolation resampling gridding