ZKX's LAB

matlab 拟合椭圆函数 怎么用matlab代码拟合椭圆?

2021-04-25知识3

怎么用matlab拟合出椭圆方程 首先要下一个拟合工具(在附件中),解压安装x=[1132,350,222,334,890,1036,1064,880];y=[574,419,828,1024,1034,856,586,337];XY=[x;y]';A=EllipseDirectFit(XY);A=[a b c d e f]ax^2+bxy+cy^2+dx+ey+f=0hold onConvert the A to stra=num2str(A(1));b=num2str(A(2));c=num2str(A(3));d=num2str(A(4));e=num2str(A(5));f=num2str(A(6));Equationeqt=['(',a,')*x^2+(',b,')*x*y+(',c,')*y^2+(',d,')*x+(',e,')*y+(',f,')'];xmin=0.7*min(XY(:,1));xmax=1.3*max(XY(:,2));ezplot(eqt,[xmin,xmax])scatter(XY(:,1),XY(:,2),'r')hold off

Matlab中如何拟合椭圆 好像没有吧要算的话就把函数转化为x^2/a+y^2/b=1转化成b*x^2+a*y^2=a*b求超定方程组就可以了吧

怎么用matlab代码拟合椭圆? clear;clc;close all;设出圆锥曲线e799bee5baa6e79fa5e98193e4b893e5b19e31333330346636方程F=(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);离散数据点x=[1.7729 1.92281.7338 1.90722.0539 1.61372.0656 1.64121.8611 1.487651.9005 1.49712.0732 1.65461.8338 1.94051.9375 1.51041.6878 1.51771.7031 1.50971.9577 1.52011.9872 1.54372.0341 1.58052.0723 1.65462.0681 1.82842.0557 1.84832.0491 1.5651p0=[1 1 1 1 1 1];warning off拟合系数,最小二乘方法p=nlinfit(x,zeros(size(x,1),1),F,p0);plot(x(:,1),x(:,2),'ro');hold on;xmin=min(x(:,1));xmax=max(x(:,1));ymin=min(x(:,2));ymax=max(x(:,2));作图ezplot(@(x,y)F(p,[x,y]),[-1+xmin,1+xmax,-1+ymin,1+ymax]);title('曲线拟合');legend('样本点','拟合曲线')

随机阅读

qrcode
访问手机版