fit_paraboloid.m
上传用户:trade789
上传日期:2018-05-10
资源大小:603k
文件大小:0k
源码类别:

2D图形编程

开发平台:

Matlab

  1. function [yctr,xctr] = fit_paraboloid(data)
  2. %Create Solution Matrix
  3. [yp,xp] = meshgrid(-1:1,-1:1);
  4. yp=yp(:); xp=xp(:);
  5. M=zeros(9,6);
  6. for i=1:length(yp)
  7.     x=xp(i); y=yp(i);
  8.     M(i,:) = [x^2 y^2 x*y x y 1];
  9. end
  10. g = data';
  11. g = g(:);
  12. cf = inv(M'*M)*M'*g;
  13. a=cf(1); b=cf(2); c=cf(3); d=cf(4); e=cf(5);
  14. xctr = (-2*b*d+e*c)/(4*a*b-c*c);
  15. yctr = (-2*a*e-d*c)/(4*a*b-c*c);
  16. %A = [a c/2; c/2 b];
  17. %[u,s,v] = svd(A);