python - 有没有办法使矩形形状函数为正值?

标签 python function numpy

我正在尝试为一个十秒的信号做一个矩形函数,其值在1到4秒之间为1,其余为0,我查看了其他问题,但它们似乎只涵盖了重复脉冲,而我只是想要这个单脉冲。我已经尝试过下面的代码,但由于我对编程非常陌生,我似乎无法让它工作。我也看到了这个问题,但由于它只给出了绝对值,所以它对我不起作用 rectangular pulse train in python

y=np.zeros(10)
def rect(x):
    x = np.linspace(0, 10, 100)
    if 1<=x<=4:
        y=1
    else:
        y=0
    return rect(x)
f1=rect(y)
plt.plot(y,f1)

最佳答案

有两种方法可以实现:使用函数式方法的长距离方法和向量化的短方法。我介绍了两者:

Longway:在 for 循环中调用该函数并将 y 的值附加到列表中。

import numpy as np
import matplotlib.pyplot as plt

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

def rect(i):
    if 1<=i<=4:
        y=1
    else:
        y=0
    return y

f1 = []
for i in x:
    f1.append(rect(i))

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

快捷方式:创建一个条件掩码并将其应用于 y 数组,根据条件用 0 和 1 填充它。

x = np.linspace(0, 10, 100)
mask = (x>=1) & (x <=4)

y = np.where(mask, 1, 0)
plt.plot(x,y)
plt.show()

enter image description here

关于python - 有没有办法使矩形形状函数为正值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55910214/

相关文章:

python - 监视从 Windows 中的 shell 命令创建的子进程

python - Pybossa webhooks 中的问题,如何执行它

python - 霍夫圆示例误差和每个圆的访问半径

python - 如何将数据从一个类传递给另一个函数(在 HTMLParser 中)?

python - 在 numpy 中寻找最小跳跃过零点

python - 使用包含文档作为字节的对象导出 Pandas DataFrame 时出现问题

python - 局部变量 'result' 可能在赋值前被引用

计算距离

python - 使用 Numpy 随机排列数组的列

python - pandas.DataFrame.sum() 参数 "min_count"相当于 pandas 0.22 之前的版本