python - 如何评估 lambda 函数的多个值?

标签 python

我想绘制一个周期赫维赛函数,如下所示:

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-2,2,10)

def periodic_function(func, period, offset):
    return lambda x: func( ((x - offset) % period ) + offset )

def f(x,xm):   
    return 1 * (x > xm)

wave = periodic_function(f,4,2)

plt.plot(x,wave)
plt.show()

但问题在于,wave 仅针对 x 的一个值计算 f。因此,最终的 plt.show() 在维度上并不合理,因为我有 10 个 x 值,而只有 1 个评估的 f 值。我该如何解决这个问题?

最佳答案

mathplotlib.pyplot.plot 函数需要相同长度的值 x 列表和值 y 列表。如果你预先计算 y,这可能是最简单的:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2, 2, 10)

heaviside_step_point = 0  # Example value


def periodic_function(func, period, offset):
    return lambda x: func(((x - offset) % period) + offset)


def get_heaviside_step_function(xm):
    return lambda x: int(x > xm)


f = periodic_function(get_heaviside_step_function(heaviside_step_point), 4, 2)

y = np.array([f(a) for a in x])

plt.plot(x, y)
plt.show()

现在您可以调整周期函数,使其接受当前 x 并简单地迭代您想要绘制的值。

HTH

关于python - 如何评估 lambda 函数的多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57252213/

相关文章:

python - G Suite SSO,仅限于公司账户,在 Python 和 Flask 中?

python - 在具有显式键值的对象列表中查找元素

python - 在不改变图形参数的情况下仅更改 matplotlib 中单个图的大小

python - 无法通过 Gather 方法 twilio 中的 action prop 重定向到方法 url

python - 异步执行服务器端 Unix 脚本

python,urllib2,因 404 错误而崩溃

python - neo4j中节点之间的循环关系

python - Hadoop 对比迪斯科与。秃鹰?

python - 脚本语言选择

python - 是否有任何简单的 python 序列比对模块或包?