请问如何根据已知的若干个数据点坐标,拟合出圆的公式,即拟合出圆心,半径等参数,求matlab代码,谢谢
1个回答
展开全部
给你一个例子,供你参考。
clc,clear
A=[384 310;386 306;389 300;392 294;396 287;400 281;404 277;409
272;413 269;417 267;420 265;424 263;430 260;434 257;439 256];
X=A;
n=length(X(:,1));
y=ones(n,1);
b=[rand(1)*1000 rand(1) rand(1)]
fun=inline('X(:,1).^2+X(:,2).^2+a(1)*X(:,1)+a(2)*X(:,2)+a(3)','a','X');
[a,r,J] = nlinfit(X,y,fun,b)
vpa(a,10)
%圆心
X1 =-a(1)/2,Y1 =-a(2)/2
%半径
R =sqrt(a(1)^2+a(2)^2-4*a(3))/2
这例题是我前不久完成的。
clc,clear
A=[384 310;386 306;389 300;392 294;396 287;400 281;404 277;409
272;413 269;417 267;420 265;424 263;430 260;434 257;439 256];
X=A;
n=length(X(:,1));
y=ones(n,1);
b=[rand(1)*1000 rand(1) rand(1)]
fun=inline('X(:,1).^2+X(:,2).^2+a(1)*X(:,1)+a(2)*X(:,2)+a(3)','a','X');
[a,r,J] = nlinfit(X,y,fun,b)
vpa(a,10)
%圆心
X1 =-a(1)/2,Y1 =-a(2)/2
%半径
R =sqrt(a(1)^2+a(2)^2-4*a(3))/2
这例题是我前不久完成的。
追问
你这个代码在matlab里运行的时候出不了结果啊,出错的,能不能给完整的,直接复制到matlab里能马上运行的,方便给qq指导下么
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询