在 Python 中,有没有一种方法可以在不使用循环的情况下生成多个正弦波?

Is there a way to generate multiple sine waves without using loop in Python?

我正在尝试生成多个正弦波,但我想避免使用循环。有没有办法像在 MATLAB 中那样做?

这是我尝试过的:

fs =250    
n = np.linspace(0,2,int(fs*2),endpoint=False)
frequencies = [1,3,4,12,70]
sines = np.sin(2*np.pi*frequencies*n)

当我尝试此代码时出现以下错误:

ValueError: operands could not be broadcast together with shapes (5,) (500,)

有没有什么方法可以在不使用循环的情况下创建具有 5 个不同频率的正弦波?

你需要重塑n。试试这个:

fs =250    
n = np.linspace(0.0,2.0,int(fs*2),endpoint=False)
n = n.reshape(len(n), 1)

frequencies = np.array([1,3,4,12,70])

sines = np.sin(2.0 * np.pi * frequencies * n)