首页 > 解决方案 > 在python中正确编码自相关函数

问题描述

我有两个数据集,每个数据集长 325 个元素。一个是沿 X 轴的数据,一个是沿 y 轴的数据。Q[0] 和 Q[1] 一起构成 Q。

方程应该是这样的:

(Q(i+deltai,j) - 均值(Q_i,j)) x (Q_i,j - 均值(Q_i,j)) / (Q_i,j - 均值(Q_i,j))^2

这是一个自相关函数。我想遍历第一个函数的 i + delta i,同时遍历 Q 中的数据。我确实开始为此编写两个 for 循环,然后尝试了 np.correlate。最后,我觉得我对 python 新手感到困惑,感觉过去几天我都在追我的尾巴。

我试过的代码是:

I = npzfile['i']
Q = npzfile['q']
U = npzfile['u']

nxside = Q.shape[0]
nyside = Q.shape[1]

for i in numpy.arange(0,nxside-1,1):
     result = numpy.correlate(Q[0], Q, mode='full')
     result2 = (result/float(result.max()))
     plt.plot(result2, '-')

 for i in numpy.arange(0,nxside-1,1):
     for j in numpy.arange(0, nyside-1,1):

# #       # J= (i)
# #       # # L = ()
# #       # # print L
     M = (Q - numpy.mean(Q))
     B = (Q[i] - numpy.mean(Q))
     K = (Q - numpy.mean(Q))**2
     Z = numpy.abs(M*B)/numpy.abs(K)
#    print numpy.abs((M*B)/K)
     plt.plot(Z, 'ro')

我希望输出在 y 轴上在 0 和 1 之间变化,超过 325 个元素。

标签: pythonloopsautocorrelation

解决方案


推荐阅读