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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
& _# o$ W- Y( j! J3 F) `- l2 m) P- ~, O
MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径
/ n; {% G- w) q- B, Z" m8 x3 m% ^; M
%% 读入离散点的坐标4 N, y) A: G: ?+ D# E. W
clear;clc;close all
4 m& v, C. E: b$ \9 T- g$ kdata=xlsread('xy.xlsx'); % 读入 excel 文件中的数据
: U) O" Y* O( G) V; Bx=data(:,1);  % 第一列为 x 坐标) w: v' W0 t8 T0 e
y=data(:,2);  % 第二列为 y 坐标
! j- b( a- y5 L' dscatter(x,y)  % 绘制离散点的分布图
5 a" x1 I2 x7 D7 G' [axis equal    % x 轴和 y 轴等比例输出
! b+ Z$ D9 P* Q. x" v4 Uhold on
9 [* ~+ J7 Z# i9 e3 ?- K" [
  }+ v% y! |' Q3 `/ z% |, A%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径4 x6 E3 K- C. F9 s) x+ B
A=[x y ones(length(x),1)];  % 得到矩阵 A4 e- @5 p# f1 E9 Y; f9 O  W0 F* Z, m
B=-(x.^2+y.^2);  % 得到矩阵 B
8 q7 ^) L, v( O/ |abc=A\B;  % 得到 a b c3 I$ |0 r1 d' ?4 t9 }- \9 s
a=abc(1);7 b% P7 c& c  o6 X2 L5 A
b=abc(2);
1 `5 O: T" u( s- ]- Kc=abc(3);
6 n4 e0 u- S3 C+ }* I8 c' y; g" y7 c: v3 V' @1 S
% 根据a b c 求出圆心坐标和半径: b4 a- r9 u) [+ T+ m# Q) B
x0=-0.5*a;
/ a" Y$ `5 e! fy0=-0.5*b;
9 b4 g% E9 i' E6 y, m( V* Wr=sqrt(x0^2+y0^2-c);
0 g( X- O1 a# M4 p4 h5 \1 X5 ]* _% f
%% 根据计算得到的圆心坐标和半径, 绘制拟合圆; t. s/ O6 {* F; E/ s$ L
k=1;
; e% m1 V6 B) N3 |& C& Ufor theta=0:pi/180:2*pi      %角度从 0 到 2*pi
1 C9 o: ?& N; u/ P/ G: T    X(k)=r*cos(theta)+x0;    %圆上的横坐标- L- q4 F0 s; F0 m: Q$ b5 V
    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标
; P5 ~8 F  `  E8 u  K1 e; q' X    k=k+1;
$ c+ b5 g9 ~# @) A6 r& c8 qend3 ~, h/ h1 i! f; {
plot(X,Y,'r')        %绘制圆. b* r& A" |, m1 X1 w
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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