return coords #Functions to do operations in list elements def addlists(list1, list2): return [x+y for x,y in zip(list1,list2)] def sublists(list1, list2): return [x-y for x,y in zip(list1,list2)] def divlist(liste, n): return [ x/n for x in liste] #Calculate the center of mass center=[0,0,0] coords=getNodeCoordinates(tree) for node, coord in coords: center=addlist(center, coord) center=divlist(center, len(coords)) print center #Calculate x*x^T # [[row1], [row2], [row3]] rows=[[0,0,0],[0,0,0],[0,0,0]] for node, coord in coords: diff=sublists(coord, center) for i in range(0,len(center)): for j in range(0,len(center)): rows[i][j] = diff[i]*diff[j]
return coords #Functions to do operations in list elements def addlists(list1, list2): return [x+y for x,y in zip(list1,list2)] def sublists(list1, list2): return [x-y for x,y in zip(list1,list2)] def divlist(liste, n): return [ x/n for x in liste] #Calculate the center of mass center=[0,0,0] coords=getNodeCoordinates(tree) for node, coord in coords: center=addlist(center, coord) center=divlist(center, len(coords)) print center # [[row1], [row2], [row3]] rows=[[0,0,0],[0,0,0],[0,0,0]] for node, coord in coords: diff=sublists(coord, center) for i in range(0,len(center)): for j in range(0,len(center)): rows[i][j] = diff[i]*diff[j] #Eigenvaluedecomposition