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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1 b# I' x! u3 w
MATLAB源程序代码分享:MATLAB求解拟合圆的圆心和半径2 K$ @' X+ A+ P' o4 R1 o; O$ B% @

3 W: @  O; k9 b$ d2 Y%% 读入离散点的坐标
' {# W; y7 @1 Q! q3 N3 ?clear;clc;close all 0 o1 f- S4 `- D5 r# C! o% i6 v
data=xlsread('xy.xlsx'); % 读入 excel 文件中的数据
* j2 f( `, I/ e. d3 ix=data(:,1);  % 第一列为 x 坐标# m0 _! r& E( W5 t$ A' B
y=data(:,2);  % 第二列为 y 坐标" ^  \6 V5 u' ]) r& H! g
scatter(x,y)  % 绘制离散点的分布图5 N4 a" c/ l& u4 y; ~3 Z
axis equal    % x 轴和 y 轴等比例输出
7 w7 K( k0 y+ y7 p4 \3 ]3 Q$ Jhold on
0 g" M& P4 c% n& W, S1 V; I. l4 V1 V
%% 使用线性拟合的方法, 计算拟合圆的圆心坐标和半径  F4 T) C% w* O; H9 H
A=[x y ones(length(x),1)];  % 得到矩阵 A7 w, s! W1 @2 c* [, T, L4 n$ |
B=-(x.^2+y.^2);  % 得到矩阵 B
( ^# R) g- Y. Habc=A\B;  % 得到 a b c- W, y" k8 O4 Z. t6 t; J  m
a=abc(1);% B$ P9 i+ q+ e
b=abc(2);- d( C, B. g2 e! l
c=abc(3);
3 I. P% h1 G; a" ~- I6 L; ?5 m8 X5 W) Z; [
% 根据a b c 求出圆心坐标和半径
5 \1 U' `, S* v- d9 X7 X0 qx0=-0.5*a;5 K4 Z$ p7 P1 e; N
y0=-0.5*b;0 ^" i) N" d: Y  N& m- K+ P
r=sqrt(x0^2+y0^2-c);# t9 r; \4 D6 u

; b) C$ z5 K6 V4 J0 d%% 根据计算得到的圆心坐标和半径, 绘制拟合圆" W! a$ ^; P3 G1 ]1 K
k=1;  C* o7 Q( V3 Q. F
for theta=0:pi/180:2*pi      %角度从 0 到 2*pi
" G5 S. V0 e0 p9 k8 p5 M. T    X(k)=r*cos(theta)+x0;    %圆上的横坐标
& I* L7 l' U* d  m% D, d0 C( b" v    Y(k)=r*sin(theta)+y0;    %圆上的纵坐标
$ ]3 j$ V! i$ _" F2 O' b$ a# l    k=k+1;
' p! O# @) x9 l1 Q7 s5 J9 xend
" d5 _5 K" u3 y8 M: F. zplot(X,Y,'r')        %绘制圆
0 f1 k% K: c, S, Escatter(x0,y0,'r*')  %标示圆心

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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