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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
$ O: P" N  v! @4 E
MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径8 y- e/ m! v, p5 C3 O* y9 p' m

/ ~+ s" Z* T8 y, e( |; B%% 读入离散点的坐标
! `7 u! d% J1 `4 Fclear;clc;close all
- T2 x( B1 u& K5 ~& Ydata=xlsread('xy.xlsx'); % 读入 excel 文件中的数据+ ^  ~- w/ U0 g- x) H3 ^
x=data(:,1);  % 第一列为 x 坐标; l& z# R2 w# Q8 x) T
y=data(:,2);  % 第二列为 y 坐标
5 n8 B! h- z/ w- Q% `scatter(x,y)  % 绘制离散点的分布图
' D' U- ~$ G4 T3 |- eaxis equal    % x 轴和 y 轴等比例输出+ p& v' `2 H4 O* W7 y' m
hold on% z0 i6 U6 ~6 B9 W7 }2 }
5 T3 _9 l" S( d+ D9 y. |! \% x
%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径7 l5 V: i) U' h: l) c
A=[x y ones(length(x),1)];  % 得到矩阵 A; I1 f) S2 V4 k1 c
B=-(x.^2+y.^2);  % 得到矩阵 B' z0 C0 I, {( Q. ?  q) D$ I
abc=A\B;  % 得到 a b c- ~/ k( a  t# i4 |
a=abc(1);
" |$ U4 ^8 K' X7 _7 h( p4 ~) Db=abc(2);9 [7 g. e. D; V/ ]% [5 Q0 P) S
c=abc(3);5 T0 j$ O# S) F& ~7 q0 m& l( Q
1 G* A; V( B  w2 M. S: e- `% m0 m
% 根据a b c 求出圆心坐标和半径
* [. m5 Z" _  x, Ox0=-0.5*a;5 m- M' y: w1 c: n5 T0 C& U* e
y0=-0.5*b;/ p$ l, Z! Z, F8 B7 a
r=sqrt(x0^2+y0^2-c);( a5 C6 Z' @; F1 n: {) p
: d- E2 Z. l9 }( h& d0 e
%% 根据计算得到的圆心坐标和半径, 绘制拟合圆3 `: J6 A" s' M: n4 A
k=1;
* J1 O" p3 L( n- c) nfor theta=0:pi/180:2*pi      %角度从 0 到 2*pi+ b: `, H: i! n* K! B! X5 g3 R2 @
    X(k)=r*cos(theta)+x0;    %圆上的横坐标
! |, ~; a0 R$ h7 q8 [" [    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标' {8 h/ X% i! u0 |5 z+ `
    k=k+1;
8 }6 A7 P! H9 k; a! oend* E8 g7 X$ Z7 n+ b* P/ p
plot(X,Y,'r')        %绘制圆7 o% ~; L* S7 ?# p; |
scatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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