擬合三維點平面matlab程式

2021-10-23 03:49:36 字數 658 閱讀 3845

% 隨機生成一組(x,y,z),這些點的座標離乙個空間平面比較近

x0=1,l1=2;

y0=1,l2=2;

x=x0+rand(20,1)*l1;

y=y0+rand(20,1)*l2;

z=1+2*x+3*y;

scatter3(x,y,z,'filled')

hold on;

planedata=[x,y,z];

% 協方差矩陣的svd變換中,最小奇異值對應的奇異向量就是平面的方向

xyz0=mean(planedata,1);

centeredplane=bsxfun(@minus,planedata,xyz0);

[u,s,v]=svd(centeredplane);

a=v(1,3);

b=v(2,3);

c=v(3,3);

d=-dot([a b c],xyz0);

% 圖形繪製

xfit = min(x):0.1:max(x);

yfit = min(y):0.1:max(y);

[xfit,yfit]= meshgrid (xfit,yfit);

zfit = -(d + a * xfit + b * yfit)/c;

mesh(xfit,yfit,zfit);

MATLAB 利用SVD分解擬合三維平面

方法簡述 利用svd分解求擬合平面 擬合方程為ax by cz d,約束條件為a2 b2 c2 1,目標是使得盡可能多的點在平面上。構建矩陣為ax 0,將a矩陣進行奇異值分解之後,最小奇異值對應的特徵值向量即為擬合平面的係數向量。詳細的原理可以檢視 svd分解平面擬合原理 在這裡我舉的例子是利用餘震...

matlab擬合空間曲線。散點擬合三維曲線

問題 已知三組資料,就是直角座標系中的x,y,z的三個陣列,要求在matlab中擬合出這條空間曲線。帖子源資料 a 22.77,17.13,14.37,12.98,12.34,12.12,12.11,12.18,12.27,12.32,12.32,12.27,12.18,12.11,12.12,12...

利用matlab將三維資料擬合成三維曲線

擬合三維曲線貌似可以用相信回歸做,但是matlab有乙個自帶的polyfit函式,可以直接算出二維資料的擬合曲線,用的是最小二乘法的思想。思路其實很簡單,將兩條擬合的二維曲線組合在一起就是三維曲線了。先上 吧 clc clear all fb load leafcloud bend.txt fb l...