SciPy `make_interp_spline` аргумент `bc_type` для 2D-массивовPython

Программы на Python
Ответить
Anonymous
 SciPy `make_interp_spline` аргумент `bc_type` для 2D-массивов

Сообщение Anonymous »

Я пытаюсь создать параметрический 2D-сплайн BSpline с помощью make_interp_spline на основе некоторых данных, полученных из сплайна NUBR, который включает в себя два единичных вектора, обозначающих касательные на обоих концах кривой. . У меня возникла проблема: я не уверен, как следует форматировать аргумент bc_type, если y является двумерным массивом.
Я попробовал следующее:

Код: Выделить всё

from scipy.interpolate import make_interp_spline
import numpy as np

def magnitude(x, y):
return np.sqrt(x**2 + y**2)

t = np.linspace(0, 1, 10)
xy = np.zeros(shape=(t.shape[0], 2))
xy[:,0] = 5*t
xy[:,1] = 2.5*t
tangent_start = (-0.9243451992527411, -0.38155727305138615)
tangent_end = (-0.8379592954605802, -0.5457327360083948)

# Passing in the tangent components
spline = make_interp_spline(t, xy, bc_type=([(1, tangent_start[0], 1, tangent_start[1])], [(1, tangent_end[0], 1, tangent_end[1])]))
Однако я получаю сообщение об ошибке:
*** ValueError: слишком много значений для распаковки (ожидается 2)
Затем я попробовал просто использовать величины:

Код: Выделить всё

spline = make_interp_spline(t, xy, bc_type=([(1, magnitude(tangent_start))], [(1, magnitude(tangent_end))])

However, I get the following error:

*** ValueError: cannot reshape array of size 1 into shape (2)
Есть ли способ ввести данные bc_type для двумерного массива? make_interp_spline способен соответствовать 2D-данным, поэтому каким-то образом он это делает, когда bc_type оставлен как None. Или мне нужно отдельно подогнать x(t) и y(t)?


Подробнее здесь: https://stackoverflow.com/questions/792 ... -2d-arrays
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»