【问题标题】:Enhancing my code that calculates Slope Sign Change (SSC)增强计算斜率符号变化 (SSC) 的代码
【发布时间】:2021-08-03 09:35:27
【问题描述】:

我正在尝试编写这个坡度符号变化 (SSC) 公式:

我在下面的尝试似乎遗漏了一些东西,因为它生成-2 而不是1。我真的陷入了困境。

signal = np.sin(np.linspace(1, 10)) + np.random.normal(scale=0.1, size=len(np.linspace(1, 10)))
ssc = np.diff(np.sign(np.diff(signal)))

非常感谢您的帮助。

【问题讨论】:

    标签: python python-3.x numpy scipy


    【解决方案1】:
    • 您可以像以前一样使用np.diff 计算时间差异:

      • x_{n} - x_{n-1}np.diff(x, prepend=1)[1:-1]

        或切片:x[1:-1] - x[:-2].

      • x_{n} - x_{n+1}-np.diff(x)[1:]

        或切片:x[1:-1] - x[2:]

    • 您可以使用给定阈值delta 的掩码实现f

      f = lambda x: (x >= delta).astype(float)
      

    SSC 的结果表达式为:

    SSC = sum(f(-np.diff(x, prepend=1)[1:-1]*np.diff(x)[1:]))
    

    【讨论】:

    • 干净。非常感谢
    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多