找回密码
 注册
关于网站域名变更的通知
查看: 505|回复: 1
打印 上一主题 下一主题

MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-18 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

8 A6 [2 h( |" AMATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径4 d$ Y) O' P& {' S5 M# o4 M
+ G5 _8 ?  a+ u% ~. n* a" ^
%% 读入离散点的坐标
1 }" T% }1 L) Y8 m& b- {clear;clc;close all
2 K9 I+ O% R: Fdata=xlsread('xy.xlsx'); % 读入 excel 文件中的数据
# t  K( [' V; T0 X' [x=data(:,1);  % 第一列为 x 坐标5 Z" N3 Z" u7 ^1 e( x2 n- P6 M9 y
y=data(:,2);  % 第二列为 y 坐标
+ Q# Q0 c6 i1 @0 o: gscatter(x,y)  % 绘制离散点的分布图
" c( V4 I2 }$ V2 j2 K, E/ ?8 Gaxis equal    % x 轴和 y 轴等比例输出
+ B# y' b8 v2 _hold on
* q0 e1 p  m# R) D' z2 I( k! p! {- J% |# J3 F) v2 a
%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径! l. ~7 E+ K+ h4 a
A=[x y ones(length(x),1)];  % 得到矩阵 A! V1 `8 Q' ^1 c
B=-(x.^2+y.^2);  % 得到矩阵 B
2 E  k7 V( l( s  g& E( r. ^- jabc=A\B;  % 得到 a b c
' n1 m) J" m1 b9 Da=abc(1);! r$ ^4 I- W' }( C; E! }0 U
b=abc(2);, e6 ^8 A7 C3 v
c=abc(3);1 C5 L3 z) ?7 A

; j% E5 [" e2 k! {% 根据a b c 求出圆心坐标和半径' k# O1 N4 ?5 L8 m% A, \( H4 a
x0=-0.5*a;( B) Q# e; v( L/ |6 d
y0=-0.5*b;8 V6 k7 J! ]) H, v/ |# K+ Z% `
r=sqrt(x0^2+y0^2-c);  r# r) H! L7 V$ Y+ G, z0 {
# p% h% Z8 X& {: R9 I
%% 根据计算得到的圆心坐标和半径, 绘制拟合圆; Y5 Q3 K& B9 o6 V( \( L
k=1;
3 y1 _, {9 ~3 Y% ?6 F/ I* h' u( Sfor theta=0:pi/180:2*pi      %角度从 0 到 2*pi
+ _$ v0 C% Y+ f    X(k)=r*cos(theta)+x0;    %圆上的横坐标5 k6 V: k( U! L/ u' x
    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标$ |$ F' `! L! N$ t3 G
    k=k+1;
/ y' o7 Q% w( |$ j- c5 y4 }end- d' c% y; p  I3 h, N2 T
plot(X,Y,'r')        %绘制圆5 \# v% q' x6 ^3 u+ q1 P7 e
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

2#
发表于 2020-3-19 18:21 | 只看该作者
MATLAB求解拟合圆的圆心和半径。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 21:06 , Processed in 0.109375 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表