У меня есть два набора данных, каждый из которых имеет длину 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')
Я ожидаю, что результат будет что-то, что изменяется от 0 до 1 по оси Y, более 325 элементов.