有没有办法做矩形函数的正值?

问题描述 投票:1回答:1

我试图做一个矩形形状函数的信号十秒钟,值为1在1和4秒之间为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)
python function numpy
1个回答
1
投票

有两种方法:使用功能方法和短矢量化方法。我介绍两个:

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

© www.soinside.com 2019 - 2024. All rights reserved.