我正在尝试在python中绘制一个简单的信号,当我运行它时,它不显示任何错误只有'重新启动'和一个空格
from pymatlab import*
import numpy as np
from numpy import sqrt
import matplotlib.pyplot as plt
import scipy as sp
import math
(hashtags) n, coef, freq, phase
def sinyal(N,c,f,p):
y=np.zeros(N)
t=np.linspace(0,2*pi,N)
Nf=len(c)
for i in range(Nf):
y+=c[i]*np.sin(f[i]*t)
return y;
# Signal Generator
c=[2,5,10]
f=[50, 150, 300]
p=[0,0]
N=2000
x=np.linspace(0,2.0*math.pi,N)
y=sinyal(N,c,f,p)
plt.plot(x[:100],y[:100])
plt.show()
答案 0 :(得分:1)
您发布的代码存在逻辑缩进错误。对sinyal
的调用缩进了一级,将置于内部sinyal
本身的定义。因此虽然定义了sinyal
,但它永远不会被调用。
使用4个空格进行缩进可以帮助您将来避免此错误。
答案 1 :(得分:0)
您的代码基本上有效(除了一些格式错误和其他奇怪之处)。我没有pymatlab
,但这并不是必需的。
import numpy as np
from numpy import sqrt
import matplotlib.pyplot as plt
import scipy as sp
import math
def sinyal(N,c,f,p):
y=np.zeros(N)
t=np.linspace(0,2*np.pi,N)
Nf=len(c)
for i in range(Nf):
y+=c[i]*np.sin(f[i]*t)
return y;
# Signal Generator
c=[2,5,10]
f=[50, 150, 300]
p=[0,0]
N=2000
x=np.linspace(0,2.0*math.pi,N)
y=sinyal(N,c,f,p)
plt.plot(x[:100],y[:100])
plt.show()