В MATLAB interp2
имеет в качестве аргументов:
result = interp2(input_x, input_y, input_z, output_x, output_y)
Вы используете только последние 3 аргумента, первые два предполагается, что input_x = 1:size(input_z,2)
и input_y = 1:size(input_z,1)
.
В Python scipy.interpolate.interp2
совершенно другой: он принимает первые 3 входных аргумента функции MATLAB и возвращает объект, который вы можете вызвать для получения интерполированных значений:
f = scipy.interpolate.interp2(input_x, input_y, input_z)
result = f(output_x, output_y)
Следуя примеру из документации, я получаю что-то вроде этого:
from scipy import interpolate
x = np.arange(0, volume_image.shape[2])
y = np.arange(0, volume_image.shape[1])
f = interpolate.interp2d(x, y, volume_image[ind, :, :])
xnew = np.arange(0, volume_image.shape[2], 1/scaleCoeff[0])
ynew = np.arange(0, volume_image.shape[1], 1/scaleCoeff[1])
M2D[ind, :, :] = f(xnew, ynew)
[Код не проверен, пожалуйста, дайте мне знать, если есть ошибки.]