Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def polyfit2d(x, y, z, order=3):
- x = x.flatten()
- y = y.flatten()
- z = z.flatten()
- ncols = (order + 1)**2
- G = np.zeros((x.size, ncols))
- ij = itertools.product(range(order+1), range(order+1))
- for k, (i,j) in enumerate(ij):
- G[:,k] = x**i * y**j
- m, _, _, _ = np.linalg.lstsq(G, z)
- return m
- def polyval2d(x, y, m):
- order = int(np.sqrt(len(m))) - 1
- ij = itertools.product(range(order+1), range(order+1))
- z = np.zeros_like(x)
- for a, (i,j) in zip(m, ij):
- z = z + a * x**i * y**j
- return z
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement