【发布时间】:2015-07-03 14:02:53
【问题描述】:
我正在尝试用圆柱体的隐式函数(5 个参数:a、b、c、d、r)拟合 3D 数据点(>1000):
-r + sqrt((x-(x+a*(-b+y)+c*(-d+z))/(1+a^2+c^2))^2+(-b+y-(a*(x+a*(-b+y)+c*(-d+z)))/(1+a^2+c^2))^2+(-d+z-(c*(x+a*(-b+y)+c*(-d+z)))/(1+a^2+c^2))^2) == 0
我找不到用 Matlab 实现它的好方法(我对 Matlab 语法的了解非常浅)。当然,使用显式函数会容易得多。我在网上查了很多,没有找到具体的答案。
如果您知道直接拟合参数方程的方法,我也有使用相同参数的圆柱体的参数函数?
x = v-(c*r*cos(u))/(sqrt(1+c^2))-(a*r*sin(u))/((1+c^2)*sqrt(1+(a^2)/(1+c^2)));
y = b+a*v+(r*sin(u))/(sqrt(1+(a^2)/(1+c^2)));
z = d+c*v+(r*cos(u))/(sqrt(1+c^2))-(a*c*r*sin(u))/((1+c^2)*sqrt(1+(a^2)/(1+c^2)));
非常感谢。
【问题讨论】:
标签: matlab 3d curve-fitting minimization