0

我是 Python 编程的新手。来自 MATLAB 背景。我正在寻找类似于 Python 中 MATLAB 的 symsum 函数的东西。

我有我的阵列,

a = np.linspace([0,3.14])

我想总结

sin(2*i*a) where i ranges from 1 to 20

然后在 a 和 y 之间绘制结果

我尝试了以下

y = nsum(lambda i: np.sin(2*i*a), [0,20])

我被困在这一点上。

编辑。MATLAB 等价物是

a = linspace(0,pi) syms i y=double(symsum(sin(2*i*a),i,0,20)

4

1 回答 1

0

编辑

看起来像是symsum符号包的一部分(在 MATLAB 和 Octave 中)。 sympy是 Python 符号包。它的集成numpy更松散。

===

这是您尝试执行的操作的猜测:

值范围a

In [180]: a = np.linspace(0, np.pi, 100)                                                     

带有 (0,1,2,3,4) 的外积(使用广播)

In [181]: x = np.arange(5)[:,None]*a          

对这些值求和sin,并绘制:

In [182]: y = np.sin(2*x).sum(axis=0)                                                        
In [184]: plt.plot(a,y)                                                                      

5宗罪的总和

于 2020-03-30T06:37:35.213 回答