On Friday, October 19, 2012 4:40:42 PM UTC+8, inshu chauhan wrote: > in this prog I have written a code to calculate teh centre of a given 3D > data.. > > > > but i want to calculate it for every 3 points not the whole data, but > > instead of giving me centre for every 3 data the prog is printing the > > centre 3 times... > > > > import cv > > from math import floor, sqrt, ceil > > from numpy import array, dot, subtract, add, linalg as lin > > > > > > > > > > def CalcCentre(data): > > centre = array([0,0,0]) > > count = 0 > > n = 0 > > for p in data[n:n+3]: > > centre = add(centre, array(p[:3])) > > count += 1 > > centre = dot(1./count, centre) > > return centre > > n += 1 > > def ReadPointCloud(filename): > > f = open(filename) > > result = [] > > for l in f: > > sp = l.split() > > t = tuple(map(float, sp[1:4])) > > result.append(t) > > return result > > > > def main (data): > > > > > > j = 0 > > for i in data[:3]: > > while j != 3: > > centre = CalcCentre(data) > > j += 1 > > print centre > > > > > > if __name__ == '__main__': > > data = ReadPointCloud(r'Z:\data\NEHreflectance_Scanner 1_part.txt') > > > > main(data) > > > > > > > > > > PLS HELP ;;;;
# assume data is a list of 3 n numbers, n!=0 n3=data.length() n=n/3 x=sum(data[0:n3:3])/n y=sum(data[1:n3:3])/n z=sum(data[2:n3:3])/n #(x,y,z) -- http://mail.python.org/mailman/listinfo/python-list