#python #matlab #math #statistics #numerical-methods
#python #matlab #математика #Статистика #численные методы
Вопрос:
Если у меня есть два набора данных с разными размерами, например:
x1 = [0,2,5,10,12,20,15,14] #length = 8
y1 = [0,0.3,0.6,1.1,1.3,2.1,1.6,1.5] #length = 8
x2 = [0,2,4,5,10,12,13,20,18,15,14] #length = 11
y2 = [0.3,0.4,0.5,0.7,1.1,1.3,1.4,2.2,1.6,1.9,1.8] #length = 11
Как я могу получить данные x1, y1, соответствующие размеру данных x2, y2? Таким образом, они оба получают длину 11.
Я ознакомился scipy.interpolate
и с другими его функциями. Но я не получаю правильные цифры, или я использую неправильные функции. Если кто-то знает правильную функцию или другой метод решения этой проблемы, то это было бы здорово.
Таким образом, конечные длины x1, y1 будут равны 11.
Ответ №1:
Я бы использовал interp1
https://uk.mathworks.com/help/matlab/ref/interp1.html
x1i = interp1(1:8, x1, linspace(1,8,11), ‘сплайн’);
y1i = interp1(1:8, y1, linspace(1,8,11), ‘сплайн’);
Комментарии:
1. Отлично, я видел это в matlab, но не знал, как заставить его работать, чтобы получить оба x1, y1. Теперь я понимаю. Спасибо!
2. У меня есть вопрос, существует ли метод этой точной функции MATLAB на других языках, python
np.interp()
не имеет такого же результата, какscipy.interp1d
и .