python是否会在没有错误的地方发现错误?
在使用heaviside函数绘制函数时,我在空闲状态下生成了以下代码:python是否会在没有错误的地方发现错误?,python,plot,Python,Plot,在使用heaviside函数绘制函数时,我在空闲状态下生成了以下代码: import numpy as np import matplotlib.pyplot as plt n_i = [-5, 5] n = np.linspace(n_i[0], n_i[1], 1E3) u1 [n+30>=0] = 1 u2 [n-15>=0] =1 u3 = u1 - u2 x = np.sin(2*np.pi*(n/15))*u3 plt.axis([-30,15,-5,5])
import numpy as np
import matplotlib.pyplot as plt
n_i = [-5, 5]
n = np.linspace(n_i[0], n_i[1], 1E3)
u1 [n+30>=0] = 1
u2 [n-15>=0] =1
u3 = u1 - u2
x = np.sin(2*np.pi*(n/15))*u3
plt.axis([-30,15,-5,5])
plt.xlabel('$n$',fontsize=20)
plt.ylabel('$x(n)$',fontsize=20)
plt.stem(n, x, "--k", linefmt='black', basefmt='black')
plt.grid()
plt.show()
在今天之前,它运行时没有错误,与我的所有其他情节一样,我已经处理python两年了,在整个课堂上,它习惯于在连老师都看不到的地方发现错误。我是不是遗漏了什么?它说“u1没有定义”,但它是。我甚至与同事和同学们进行了比较,没有看到它以任何其他方式出现在情节代码中。救命啊 您甚至没有创建
u1
就尝试为u1[…]
赋值
您应该先初始化
u1
,然后再尝试初始化它的元素。它没有定义。。。没有u1=
或import u1
任何地方…没有,u1
未定义。u2也不是。所以你是说我需要“my_array=array(u1,[n+30>=0])条件?但是它缺少heaviside函数限制,其中,如果t>=0,u(n)=1,如果t>=0,u(n)=0t@TwistedMaze:您需要指定名称的东西u1
。Python代码中没有定义这样的名称。我不知道你的代码应该实现什么my_array=array(u1[n+30>=0])
不会将任何内容分配给u1
,它将分配给名称my_array
,但表达式将失败,因为您没有定义u1
。@TwistedMaze不,您应该只声明您的u1
。例如,作为一个词汇表(或者其他什么,取决于你想要什么):u1={}
。只有这样,才能向其中添加元素。@martijnpiers它应该通过matplotlib中的stem函数来表示数学函数的图形可视化。该练习具有限制实际功能的heaviside功能。我查找了python中的示例并应用了它。到目前为止,它还没有出现错误,而且出乎意料的是--“名称u1未定义”@vmonteco:使用的表达式表明u1
和u2
也应该是numpy数组。