关于python:s()是什么意思?

What does s() mean?

本问题已经有最佳答案,请猛点这里访问。

我不明白s(xx)在这段代码中做了什么。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as sps
import scipy.interpolate as spi

# plot cubic cardinal B-spline (knots 0, 1, 2, 3, 4)
p = 3
xx = np.linspace(0, p+1, 100)
yy = sps.bspline(xx - (p+1)/2, p)
plt.plot(xx, yy)
plt.show()

# plot cubic non-uniform spline (m=5 DOFs)
xi = [0, 1, 3, 4, 6, 7, 8, 10, 11]
c = [2, -1, 1, 0, 1]
s = spi.BSpline(xi, c, p)
m = len(c)
xx = np.linspace(xi[p], xi[m])
yy = s(xx)
plt.plot(xx, yy)
plt.show()

我试着运行s(xx)部分来查看s()做了什么,但是它抛出了错误s()没有定义,但是当我执行整个代码时,它是有效的。


这是你程序中的s = spi.BSpline(xi, c, p),你已经定义了自己。对于S,python中没有其他特定的内容。


看,它来自上面几行:

1
s = spi.BSpline(xi, c, p)

spi.BSpline根据docs返回可调用对象,调用方式如下:

1
s(xx)