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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

5 Y  D; v8 b$ J7 O# ?3 L+ x5 d( O  kMATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径
/ k6 [0 O- h& h7 `' s8 |1 `# ]: _/ o( p
%% 读入离散点的坐标
' k! W; B+ X: x' ~) h5 [" N2 Uclear;clc;close all
" c( i2 v7 }# Fdata=xlsread('xy.xlsx'); % 读入 excel 文件中的数据
# v5 J; T; ^0 X2 [& [x=data(:,1);  % 第一列为 x 坐标
2 ]- f# d- S6 S* k9 a6 p$ yy=data(:,2);  % 第二列为 y 坐标' Q& ]0 J5 y) {  V, [
scatter(x,y)  % 绘制离散点的分布图# j* E6 w0 m" F8 f. K" V& ^
axis equal    % x 轴和 y 轴等比例输出) [/ S. h6 H* v2 y( N
hold on0 }" ~/ \# s" @$ R

& @' G9 K7 d- G$ w/ t' E. W' p0 ?%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径
3 C4 b; P( C( R% jA=[x y ones(length(x),1)];  % 得到矩阵 A6 Q, _6 s# ~- g
B=-(x.^2+y.^2);  % 得到矩阵 B; q) u7 l" b) e
abc=A\B;  % 得到 a b c  Y7 S( o1 G2 f2 D5 L+ r
a=abc(1);; Q, J. G6 `& f8 S
b=abc(2);
, k4 @9 v% Q# Q! S/ h) hc=abc(3);
! u: O) J: m8 j1 R/ I8 C
9 ~0 h4 Y9 G+ R' `: z% 根据a b c 求出圆心坐标和半径
+ t8 d5 p+ @. ~8 ]8 U) M' `x0=-0.5*a;
; n" d; b$ f  s+ m* Uy0=-0.5*b;
/ t0 W  n- n( x. p+ z6 hr=sqrt(x0^2+y0^2-c);
4 R6 j6 n% Z5 a& A# x5 Y. E' h4 w" L
%% 根据计算得到的圆心坐标和半径, 绘制拟合圆0 z5 ^# s! l2 |3 X8 a8 Z
k=1;! {) n* Z1 V( Y9 `0 N8 L0 D
for theta=0:pi/180:2*pi      %角度从 0 到 2*pi
" |. G4 i9 |- H: X' T3 C6 A3 l    X(k)=r*cos(theta)+x0;    %圆上的横坐标& P, y- h3 S. F* N) W+ r) }
    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标
; x1 w# C4 ^3 b, S. g9 L& \    k=k+1;- |. u3 b+ m5 n- N4 s0 u
end# V2 d  ^4 _) F! h2 \
plot(X,Y,'r')        %绘制圆0 b$ ~8 a( G# a9 A9 i
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 15:49 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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