【发布时间】:2018-05-09 20:01:51
【问题描述】:
我对 python 很陌生,尤其是对 lambda 函数很陌生。我尝试绘制我在下面定义的函数,但我得到了
ValueError: x 和 y 必须具有相同的第一维,但形状为 (100,) 和 (1,)
从我所看到的函数绘图来看,我认为错误在于我的函数定义中,即 W 定义错误。 代码如下:
import numpy as np
import matplotlib.pyplot as plt
def W(t):
s=lambda t: t
for k in range(5):
s=lambda t, y=s: y(t)+k
return s
t=np.linspace(0,1,100)
plt.plot(t,W(t))
【问题讨论】:
-
错误本身来自
t有100个元素,而W(t)只有一个元素,即lambda函数s。您需要使用一些输入来评估函数。然而,一旦你这样做了,你就会遇到其他几个问题......我建议你先创建一个更简单的测试用例来理解这个问题。 -
我知道 W(t) 只有一个元素。但为什么? W 应该是 t 的函数,s 也应该是。关于为什么 s 不能作为函数工作的任何帮助?
-
是的
W是t的函数。它返回一个函数,这样W(t)也是t的函数。W(t)(t)可能会导致其他结果。但是正如我所说,代码中存在很多问题,至少我无法在不知道最终结果的情况下解决所有问题。
标签: python matplotlib lambda