gpt4 book ai didi

python - 在 numpy.correlate 中指定滞后

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:11 26 4
gpt4 key购买 nike

Matlab 的互相关函数 xcorr(x,y,maxlags) 有一个选项 maxlag,它返回滞后范围内的互相关序列 [ -maxlags:maxlags]。 Numpy 的 numpy.correlate(N,M,mode) 有三种模式,但它们都不允许我设置特定的滞后,这与完整的 (N+M-1),相同的 (max(M, N)) 或有效的 (max(M, N) - min(M, N) + 1 )。对于 len(N) = 60000len (M) = 200,我想将滞后设置为 100。

最佳答案

matplotlib.xcorr 具有 maxlags 参数。它实际上是 numpy.correlate 的包装器,因此不会节省性能。尽管如此,它给出的结果与 Matlab 的互相关函数给出的结果完全相同。下面我编辑了 maxplotlib 中的代码,以便它只返回相关性。原因是如果我们按原样使用 matplotlib.corr,它也会返回绘图。问题是,如果我们将复杂数据类型作为参数放入其中,当 matplotlib 尝试绘制绘图时,我们将收到“将复杂数据类型转换为真实数据类型”的警告。

<!-- language: python -->

import numpy as np
import matplotlib.pyplot as plt

def xcorr(x, y, maxlags=10):
Nx = len(x)
if Nx != len(y):
raise ValueError('x and y must be equal length')

c = np.correlate(x, y, mode=2)

if maxlags is None:
maxlags = Nx - 1

if maxlags >= Nx or maxlags < 1:
raise ValueError('maxlags must be None or strictly positive < %d' % Nx)

c = c[Nx - 1 - maxlags:Nx + maxlags]

return c

关于python - 在 numpy.correlate 中指定滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com