资源简介

用matlab进行离散数据的平面拟合,得到平面拟合方程的系数

资源截图

代码片段和文件信息

function [ABC]=plane_fit(xyz)

% function [ABC]=plane_fit(xyz)
% ------------------------------------------------------------------------
%   Fit a plane to xyz data.
%   [ABC]=plane_fit(xyz) calculates the coefficients ABC that fit the data
%   defined by the vectors xyz. 
%
%   Uses command svd
%
%   %EXAMPLE: 
%
%         [xy]=meshgrid(linspace(01020)linspace(01020));
%         a=1; b=2; c=-2;
%         z=(a*x)+(b*y)+c;
%         x=x(:); y=y(:); z=z(:);
%         z=z+(randn(length(z)1));
%         [ABC]=plane_fit(xyz); 
%         [XY]=meshgrid(linspace(min(x)max(x)20)linspace(min(y)max(y)20));
%         Z=(A*X)+(B*Y)+C;
%         plot3(xyz‘r.‘); hold on; grid on;
%         surf(XYZ‘FaceColor‘‘g‘); alpha(0.5);
%         title([‘a=‘num2str(a) ‘ A=‘num2str(A)‘ b=‘num2str(b)‘ B=‘num2str(B)‘ c=‘num2str(c)‘ C=‘num2str(C)]);
%
% Kevin Mattheus Moerman
% kevinmoerman@hotmail.com
% 14/08/2008
% ------------------------------------------------------------------------

P=[mean(x)mean(y)mean(z)];
[USV]=svd([x-P(1)y-P(2)z-P(3)]0);
N=-1/V(endend)*V(:end);
A=N(1); B=N(2); C=-P*N;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1343  2009-05-20 08:38  license.txt
     文件        1183  2009-05-20 08:38  plane_fit.m

评论

共有 条评论