資源簡介
用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
評論
共有 條評論