-
大小: 2KB文件類型: .m金幣: 1下載: 0 次發(fā)布日期: 2021-05-05
- 語言: Matlab
- 標(biāo)簽: 三維點(diǎn)云??最小二乘??平面擬合??
資源簡介
matlab中對三維點(diǎn)云利用最小二乘法進(jìn)行平面擬合,該程序本人自己寫的一個子程序
代碼片段和文件信息
function?[abcd]=PlaneFitting(s)?%ABCD為平面方程系數(shù),s為測量點(diǎn)陣求平面方程平面方程D=Ax+By+Cz
x=s(:1);%s的第1列x
y=s(:2);%s的第2列
z=s(:3);%s的第3列
so=mean(s1);%對xyz求均值
xo=so(:1);%x的均值
yo=so(:2);%y的均值
zo=so(:3);%z的均值
os=bsxfun(@minussso);%xyz與其均值之差
ox=os(:1);%x與其均值之差
oy=os(:2);%y與其均值之差
oz=os(:3);%z與其均值之差
oxox=sum(bsxfun(@timesoxox));
oyoy=sum(bsxfun(@timesoyoy));
ozoz=sum(bsxfun(@timesozoz));%xyz的方差
oxoy=sum(bsxfun(@timesoxoy));
oxoz=sum(bsxfun(@timesoxoz));
oyoz=sum(bsxfun(@timesoyoz));%xyz的互協(xié)方差
oxyz=[oxoxoxoyoxoz;oxoyoyoyoyoz;oxozoyozozoz];%xyz的協(xié)方差陣
%?[VD]=eig(oxyz)%進(jìn)行特征分解
%?[~t]=min([abs([D(11)D(22)D(33)])])%最小特征值所對應(yīng)的特征向量就是平面方程系數(shù)
%?a=V(1t);
%?b=V(2t);
%?c=V(3t);
[USV]=svd(oxyz);%?協(xié)方差矩陣的SVD變換中,最小奇異值對應(yīng)的奇異向量就是平面的方向
a=V(13);
b=V(23);
c=V(33);
d=a*xo+b*yo+c*zo;%輸出平面方程系數(shù)
%?%?%?n=size(s1);
%?%?%?xx=x.*x;
%?%?%?yy=y.*y;
%?%?%?zz=z.*z;
%?%?%?xy=x.*y;
%?%?%?xz=x
評論
共有 條評論