matlab 多个离散三维点 拟合圆 求圆心坐标及半径 求源代码

通识课数学建模的作业!大一无力啊!... 通识课数学建模的作业! 大一无力啊! 展开
 我来答
dukinkin
推荐于2017-11-26 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2443
采纳率:90%
帮助的人:1051万
展开全部
输入的离散点在
变量X中

X=[x1 y1 z1;
x2 y2 z2;
...........];
是一个n行,3列的矩阵,1,2,3列分别为x,y,z坐标

p0=mean(X);%以重心为初始圆心
r02=mean(sqrt(sum((X-repmat(p0,[size(X,1) 1])).^2,2)));%以到重心的平均距离为初始半径
f=@(p)(X(:,1)-p(1)).^2+(X(:,2)-p(2)).^2+(X(:,3)-p(3)).^2-p(4).^2;
p=lsqnonlin(f,[p0 r02]);
x0=p(1);y0=p(2);z0=p(3);
radii=abs(p(4));

x0 y0 z0 为圆心坐标
radii为半径。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式