У меня 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
.