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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
) A& v% O4 @6 C
MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径' z, }1 G; e4 F$ t/ {

0 K5 N: B  k8 K5 J( l3 P%% 读入离散点的坐标3 {. ~* z0 ^7 T  X7 e: ~  M
clear;clc;close all , P( I& g2 b5 v3 W
data=xlsread('xy.xlsx'); % 读入 excel 文件中的数据2 u- C% s# n$ ?# j. J2 n
x=data(:,1);  % 第一列为 x 坐标
/ I4 j0 p; \7 m6 U5 ty=data(:,2);  % 第二列为 y 坐标  W( R/ {4 H2 \% f4 G* _& U" O- D- ^& i
scatter(x,y)  % 绘制离散点的分布图
; P; y* d$ J5 r3 Maxis equal    % x 轴和 y 轴等比例输出4 N  v3 L) M- }+ }' S0 C
hold on
/ [7 a' {* B3 R$ D
  \% |6 P7 f, R" }1 d$ e# e%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径+ q/ w* R) r) o  C8 B8 M
A=[x y ones(length(x),1)];  % 得到矩阵 A
5 H" D1 X: h( ]% |0 i1 d  p+ cB=-(x.^2+y.^2);  % 得到矩阵 B- [6 c8 v9 j4 f% F! t
abc=A\B;  % 得到 a b c
, O7 Y- T% p; u+ L0 `a=abc(1);
0 t0 [, u) W( X0 }2 S8 Rb=abc(2);+ I( F& g  i5 ]
c=abc(3);9 ]0 V" p7 t8 ~' R+ g! |6 y

. e$ D- G9 @! l1 k% 根据a b c 求出圆心坐标和半径
2 j. C& e4 g8 p) c/ lx0=-0.5*a;% q4 O$ C5 A; `5 r7 B
y0=-0.5*b;  L3 @3 v0 A" b, |8 b5 N7 i
r=sqrt(x0^2+y0^2-c);
' O% D" U) ]: x; G  G
. ^3 I3 ?" ?$ z0 c9 N. A$ w) c%% 根据计算得到的圆心坐标和半径, 绘制拟合圆
6 W) U$ Q, u/ n) @( p" dk=1;. L  t& R: P1 t' \
for theta=0:pi/180:2*pi      %角度从 0 到 2*pi
" |9 n% m4 Z& d/ W: L  m: V+ H    X(k)=r*cos(theta)+x0;    %圆上的横坐标
( B3 d# z" Q& `& X5 l" G6 ?( x8 y    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标7 _( ^8 }, \  Q2 ^1 f* S
    k=k+1;7 F% {, u7 p( n. N6 {$ F
end. m) r; s* g$ k# j5 x% [5 I: L
plot(X,Y,'r')        %绘制圆
) I& S- R* o  z9 d& E# |7 Zscatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 07:21 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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