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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

# t+ u! t$ f9 Y. N1 |MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径
& V3 j5 n5 _0 T  {$ _- J) R! A; e% M) _2 p! f" j- A5 W4 G' j
%% 读入离散点的坐标  I4 J& A) a/ t- M/ Z
clear;clc;close all ; G8 U2 r. s/ M, R/ J; F/ A6 s2 D
data=xlsread('xy.xlsx'); % 读入 excel 文件中的数据7 g( z5 p2 Q5 _. b+ d
x=data(:,1);  % 第一列为 x 坐标
$ i1 w( ?9 J" |3 S9 q4 m8 {y=data(:,2);  % 第二列为 y 坐标
! J- P1 D5 [4 v+ v8 kscatter(x,y)  % 绘制离散点的分布图
1 m. p8 ?+ e, E5 R8 eaxis equal    % x 轴和 y 轴等比例输出
. r* W0 n" {& k$ V, Hhold on3 E9 ^1 s% n% e( [& |% N* j

# X1 \: I9 A' U/ p, p+ K( q% Y%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径3 U  v3 G& ]2 J% u  b6 I& h
A=[x y ones(length(x),1)];  % 得到矩阵 A
" N6 ]3 H" i8 ^$ T$ WB=-(x.^2+y.^2);  % 得到矩阵 B0 k5 g. `0 F7 B6 r6 ^# L
abc=A\B;  % 得到 a b c
4 W' x2 W4 B( L6 ~a=abc(1);. ~- ^7 `5 l/ q& M$ r' F2 B
b=abc(2);
$ W) U: _+ C) c: i0 b9 qc=abc(3);5 P$ P4 Z6 s7 U2 A2 j6 M1 ]& q- U

$ ^$ }( l$ B" c% R  Z/ L% 根据a b c 求出圆心坐标和半径
+ F1 p( z% x$ _& s5 Ax0=-0.5*a;
& B. t8 W( z+ G+ B* E; a5 z4 W' Ly0=-0.5*b;
+ q! L$ @$ @5 w# I- Qr=sqrt(x0^2+y0^2-c);9 r5 H- d6 [5 ]
7 D, e' Y3 S& V! e% p, m
%% 根据计算得到的圆心坐标和半径, 绘制拟合圆+ p* [$ s7 t# B* q- l
k=1;
6 y) X+ j  e& \6 ~8 H$ Ufor theta=0:pi/180:2*pi      %角度从 0 到 2*pi) ^* B2 O% u2 o- H# E! K
    X(k)=r*cos(theta)+x0;    %圆上的横坐标
& q& L) u  B& c9 ?    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标
, n3 V$ M( }! b- a+ u5 l    k=k+1;
/ H8 a7 H2 ^' r2 X- @- y: gend
6 g0 \7 U2 b9 ?" Y  Q9 }plot(X,Y,'r')        %绘制圆/ e+ z0 ~5 s% F* D- y" Z0 ~& w$ k
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-18 13:42 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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