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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
& P7 t+ C/ [7 l( O
MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径
0 j  ~: J/ w; j& I4 h  d5 @
) H% D. q7 l" M' \%% 读入离散点的坐标
* l: z. f- j9 Bclear;clc;close all
" @9 e7 n# l- edata=xlsread('xy.xlsx'); % 读入 excel 文件中的数据' s7 a* u3 r3 e2 N. _2 y- r3 H% K
x=data(:,1);  % 第一列为 x 坐标, E0 t4 [  C" b* r2 N1 {
y=data(:,2);  % 第二列为 y 坐标( Q* V4 H: T- N  k0 l3 k) j- n
scatter(x,y)  % 绘制离散点的分布图
2 v9 a5 @5 i8 z9 `# ?axis equal    % x 轴和 y 轴等比例输出" f9 _& M" D1 T5 J0 j# K" j
hold on5 ?" q; @6 G% ^! X, }2 S
+ `1 H; x" A2 N* `8 ^
%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径
2 `& q9 R* Z$ J! d" sA=[x y ones(length(x),1)];  % 得到矩阵 A4 m+ Y; \! |7 j8 P( m
B=-(x.^2+y.^2);  % 得到矩阵 B
5 I! p/ e- }# h8 P" J) H+ z( {- tabc=A\B;  % 得到 a b c
' i9 w4 U) f) C1 X5 e' j. \  p' ca=abc(1);+ k) T3 P' s$ M' l: c3 c" Z
b=abc(2);" Y* ?& _! s: p
c=abc(3);5 x/ E1 A  ?; h! U/ y# c; ^

8 p" |! x1 N7 K- `/ {( \% 根据a b c 求出圆心坐标和半径
/ r$ x+ z1 @1 V3 q! b7 qx0=-0.5*a;: \  b4 H+ N+ o3 f
y0=-0.5*b;) G2 q2 J2 p( l& B
r=sqrt(x0^2+y0^2-c);5 p8 O7 u! t  f! r: d- ?# X( _) f
! H. j! R9 q/ @* s4 X
%% 根据计算得到的圆心坐标和半径, 绘制拟合圆3 x3 `- d( {6 _, T" c
k=1;
5 q) @8 ^/ Q9 [: |: p& ?for theta=0:pi/180:2*pi      %角度从 0 到 2*pi
+ [7 z& E9 K# R3 N- X; t/ |6 v, i    X(k)=r*cos(theta)+x0;    %圆上的横坐标  a3 w7 W( F+ G: G+ {
    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标4 s  B9 f; [4 ]% `9 }9 k% U
    k=k+1;
/ o, U  Y7 h! T5 \4 Oend" J# \; E. e- T) J; I2 O: z, [& w, n
plot(X,Y,'r')        %绘制圆+ @. {' ?2 u! |1 C
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 18:40 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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