-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcovariance_vm.py
More file actions
44 lines (32 loc) · 1.09 KB
/
covariance_vm.py
File metadata and controls
44 lines (32 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding: utf-8 -*-
"""
This script computes the covariance of fluctuations between a vector and a matrix.
The output is a vector.
Example: covariance_centerofmass = <mu*nu> - <mu><nu>
Author: DiegoDZ
Date: 29 june 2016
Modified: 15 december 2016
run: >> python convariance_vm.py vector matrix > output_file
"""
import numpy as np
import sys
def covariance(arg1, arg2):
# load files
datafile1 = np.loadtxt(str(arg1))
datafile2 = np.loadtxt(str(arg2))
# define number nodes
number_nodes = len(datafile2[0])
# define number snapshots
number_snapshots = len(datafile2)
# create an array in which we will be the output.
covariance= np.zeros(number_nodes)
for i in range(0,number_nodes):
covariance[i] = np.sum(datafile1.T[0,:] * datafile2[:,i]) / number_snapshots - np.sum(datafile1.T[0,:]) * np.sum(datafile2[:,i]) / number_snapshots ** 2
return covariance
(covariance) = covariance(sys.argv[1], sys.argv[2])
# For convenience the output will be saved in one line
aux = ''
for element in covariance:
aux = aux + str(element) + ' '
print aux
#EOF