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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
0 O# |) b/ [# X1 p! x* ^
MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径
! b8 t$ U" t1 |! L" _9 r3 `& ~
7 R! ~3 x$ N3 e%% 读入离散点的坐标
; s6 _, P( E4 P0 w; j: F: c- ]clear;clc;close all ' C; y0 w8 U9 B" j. {9 z
data=xlsread('xy.xlsx'); % 读入 excel 文件中的数据8 u' }9 Q6 V& h% Q5 h4 r
x=data(:,1);  % 第一列为 x 坐标/ @9 L! r  u' i4 {: g9 n
y=data(:,2);  % 第二列为 y 坐标6 z$ @5 k% c  T- O& M
scatter(x,y)  % 绘制离散点的分布图2 K& ?- Y6 M# u, b9 Q/ M5 |
axis equal    % x 轴和 y 轴等比例输出
1 ]: Z" x3 ]! c1 Zhold on/ M. }4 Q& Y7 d3 u4 e
" p# }, d9 K: u7 ]
%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径
' ?5 D  t. M8 p+ l$ K" BA=[x y ones(length(x),1)];  % 得到矩阵 A
$ ~8 B0 ~' v( }! o  e1 _. b5 x3 mB=-(x.^2+y.^2);  % 得到矩阵 B) n5 m$ E" V! x" h* b% b0 Q4 V
abc=A\B;  % 得到 a b c
! C/ ^# n  R3 w4 m' J1 Ua=abc(1);
' Z- z% k2 P& [) i" ub=abc(2);
9 }& e) g* _' p* b- \c=abc(3);7 [0 t: v4 U+ }. h, f2 [" V

; N" c& j% ^! a5 c! e& ~, d% 根据a b c 求出圆心坐标和半径
2 I+ r! H2 M6 f8 n- Bx0=-0.5*a;
% }5 O% A1 ~( u* k* v7 D& yy0=-0.5*b;
; V: r. \  C0 ar=sqrt(x0^2+y0^2-c);( f, c7 e2 o" g# k6 Y6 p6 J, k. A

0 p2 r: r4 e* Q5 x%% 根据计算得到的圆心坐标和半径, 绘制拟合圆
; n: B2 l3 F# {6 Wk=1;, L1 C, i1 t, m! I! C$ Q3 V% y
for theta=0:pi/180:2*pi      %角度从 0 到 2*pi
. \! ~6 W% P  L/ k3 I# s    X(k)=r*cos(theta)+x0;    %圆上的横坐标0 T' {9 O% C3 ~
    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标' R. D4 a2 |4 ~, R+ b/ U7 S4 D
    k=k+1;" e. }$ P! Q8 Y/ ^
end
& i6 t$ `; {" |2 A; u8 Xplot(X,Y,'r')        %绘制圆: d$ j8 k" a! K
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 23:48 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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