【问题标题】:Is there a way of doing a rectangular shape function positive values?有没有办法做一个矩形形状函数正值?
【发布时间】:2019-04-29 20:14:16
【问题描述】:

我正在尝试为一个 10 秒的信号做一个矩形形状函数,其值为 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】:

    有两种方法:使用函数式方法的长方法和矢量化方法的短方法。我同时介绍:

    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()
    

    Short way:创建一个条件掩码并将其应用于您的 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()
    

    【讨论】:

    • 非常感谢!我得研究一下这个面具,因为我对它了解不多,但从很长的那个我就明白了。
    • 我试图投票,但我似乎没有这样做的声誉
    • @MiroFelicianoDringdosSanto:没问题。我认为您需要至少 16 名声望才能投票。
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多