clear;clc;close all
data=xlsread('xy.xls'); %读入excel文件中的数据
x=data(:,1); %第一列为x坐标
y=data(:,2); %第二列为y坐标
scatter(x,y) %绘制离散点的分布图
axis equal %x轴和y轴等比例输出
hold on
A=[x y ones(length(x),1)]; %得到矩阵A
B=-(x.^2+y.^2); %得到矩阵B
abc=A\B; %得到a b c
a=abc(1);
b=abc(2);
c=abc(3);
%根据a b c 求出圆心坐标和半径
x0=-0.5*a;
y0=-0.5*b;
r=sqrt(x0^2+y0^2-c);
%根据圆心坐标和半径,绘制圆
k=1;
for theta=0:pi/180:2*pi %角度从0到2*pi
X(k)=r*cos(theta)+x0; %圆上的横坐标
Y(k)=r*sin(theta)+y0; %圆上的纵坐标
k=k+1;
end
plot(X,Y,'r') %绘制圆
scatter(x0,y0,'r*') %标示圆心
评论11