scipy.interpolate.insert¶
- scipy.interpolate.insert(x, tck, m=1, per=0)[源代码]¶
将结插入到B样条曲线中。
在给定B样条表示的结点和系数的情况下,创建插入结点的新B样条 m 时间点上的时间 x 。这是FITPACK的FORTRAN例程INSERT的包装。
- 参数
- X(U)array_like
插入新结的一维点。如果 tck 是从
splprep
,则应给出参数值u。- tck :A
BSpline
实例或元组一个 如果是元组,则它应该是包含节点向量、B样条系数和样条曲线阶数的元组(t,c,k)。
- m整型,可选
插入给定节点的次数(其重数)。默认值为1。
- per整型,可选
如果非零,则认为输入样条线是周期性的。
- 退货
- B样条实例或元组
一种新的具有结点t、系数c和阶数k的B样条。
t(k+1) <= x <= t(n-k)
,其中k是样条曲线的阶数。在周期样条的情况下 (per != 0
)必须至少有k个内部结点t(J)满足t(k+1)<t(j)<=x
或至少k个满足以下条件的内部结t(J)x<=t(j)<t(n-k)
。返回元组当且仅当输入参数 tck 是元组,否则将构造并返回BSpline对象。
注意事项
不建议直接操作tck-tuple。在新代码中,更喜欢使用
BSpline
对象。参考文献
示例
您可以将节点插入到B样条曲线中。
>>> from scipy.interpolate import splrep, insert >>> x = np.linspace(0, 10, 5) >>> y = np.sin(x) >>> tck = splrep(x, y) >>> tck[0] array([ 0., 0., 0., 0., 5., 10., 10., 10., 10.])
将插入一个结:
>>> tck_inserted = insert(3, tck) >>> tck_inserted[0] array([ 0., 0., 0., 0., 3., 5., 10., 10., 10., 10.])
插入了一些结:
>>> tck_inserted2 = insert(8, tck, m=3) >>> tck_inserted2[0] array([ 0., 0., 0., 0., 5., 8., 8., 8., 10., 10., 10., 10.])