我正在尝试使用if/else语句生成一个box或step函数。例如:
import matplotlib.pyplot as plt
import numpy as np
def V(x):
if -1<=x<=1:
return 20
else:
return 0
x=np.linspace(0,100)
plt.plot(x,V(x))
但是,我得到了一个错误:
包含多个元素的数组的真值不明确。使用a.any()或a.all()
我理解这是因为它试图一次比较所有的x输入值,但不能这样做,但我不明白为什么它不一次只做一个,并输出每个值。事实上,如果我一次只输入一个x,它就工作了。有没有一个简单的方法来克服这个问题?你知道吗
使用
map
将函数应用于x
的每个值:出现错误的原因是,当函数被设计用于单个元素时,您正试图对整个数组应用函数。你知道吗
不过,更好的方法是将函数矢量化:
只需循环x,对每个值应用V(x),并将每个值保存在一个数组中。你知道吗
相关问题 更多 >
编程相关推荐