numpy:具有多个元素的数组的真值不明确。使用a.any()或a.all()

时间:2019-01-27 16:29:03

标签: python numpy

我知道以前已经发布了此错误,但是我不确定如何继续。我想编写一个函数然后返回方波。

这是我的代码:

completeTodos.filter(todo => todo.completed)

我运行它时收到以下错误消息:

  

ValueError:具有多个元素的数组的真值是   暧昧。使用a.any()或a.all()

我发现,如果我在def V_in(t): v = np.floor(2*t) if v % 2 == 0 V_in = 1 else: V_in = -1 return V_in t = np.arange(0,10,1000) square_wave = V_in(tpoints) plt.plot(tpoints, square_wave); 的所有值上创建一个循环并将它们存储在数组中,则可以使它工作,但是当我尝试在第二个函数中使用它时,这是行不通的。 / p>

t

def f(V,t): return (V_in(t) - V) 是初始值。然后在RK4算法中使用第二个函数来求解电压。

1 个答案:

答案 0 :(得分:1)

您可以使用for循环更改数组值,也可以使用通过np.where进行矢量化操作来一次全部更改,如下所示。 np.where(V%2==0, 1, -1)将1分配给可被2整除的数组值,将-1分配给不能被2整除的数组值。

def V_in(t):
    V  = np.floor(2*t)  
    V = np.where(V%2==0, 1, -1)
    return V


t = np.linspace(0,10,100)

square_wave = V_in(t)

plt.plot(t, square_wave);

enter image description here