python - 如何使用 python 绘制简单正弦波的死区

标签 python numpy matplotlib

我使用下面的代码来绘制正弦波的死区,以便死区出现在 x 轴上,y=0。输出通过上限[y-0.5]和下限的值最小化。这里需要显示死区。任何人都可以帮助我吗?

import matplotlib.pyplot as plt
import numpy as np

UpperLimit = 0.5;
LowerLimit = -0.5;

x=np.linspace(-20,20,100);
y=np.sin(x);

if y < 0:
   y=np.sin(x)-LowerLimit
if y > 0:
   y=np.sin(x)-UpperLimit
else:
   y=0

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

最佳答案

我想你应该使用矢量化值,所以试试这个

import matplotlib.pyplot as plt
import numpy as np

LL = -0.5
UL = 0.5

x=np.linspace(-20,20,100)
y=np.sin(x)

# plot original sine
plt.plot(x,y)


# zero output value for the dead zone
y[(y>=LL) & (y<=UL)] = 0

y[y>UL] -= UL
y[y<LL] -= LL

# plot "simulinked" ....
plt.plot(x,y)

plt.grid()
plt.show()

enter image description here

PS 如果您提供 "Dead Zone" algorithm 的链接,会更容易理解您想要什么。 ,因为并非所有人都意识到这一点

关于python - 如何使用 python 绘制简单正弦波的死区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062713/

相关文章:

python - 如何从 C 中找到 Python 函数的参数数量?

python - 如何从 wsgi 应用程序返回 apache 错误页面?

python - 使用 None 的 NumPy 数组切片

python - 如何在 matplotlib 中为 pyplot.show() 设置超时?

python - 使用mptt查询项目中的困难条件

python - 找不到满足lxml新闻-请要求的版本

python - Dask 在上一列的基础上添加新列

python - 在 Numpy 中将行向量转换为列向量

python - Python 中一张图中的停留图

python - Matplotlib 也在图外扩展了最佳定位