你好,希望将下图中半径过小的圆提取出来,求matlab 数据提取程序!!!!

心电信号的提取和matlab编程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
心电信号的提取和matlab编程
上传于|0|0|文档简介
&&ECG信号的提取和matlab编程
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩22页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 1435|回复: 8|关注: 0
最小二乘法 拟合圆
根据一些点的坐标求出圆心和半径
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
现在有8个点 这8个点在一个圆上&&怎么求出圆的半径&&和圆心 ,求程序 毕设用
&&X 6.2 17.4 6.8 17.7
&&Y -18.8 -9.6 18.5 9.9
可以帮忙解决一下这个问题吗?谢谢了
论坛优秀回答者
关注者: 90
y1=sqrt(400.675344*x-0.999826*x^2)
y2=-sqrt(400.675344*x-0.999826*x^2)
论坛优秀回答者
关注者: 90
圆心即为0,半径为20(sqrt(400.0253)).
<h1 style="color:# 麦片财富积分
圆心即为0,半径为20(sqrt(400.0253)).
大神&&您好 请问 能告诉一下 这类问题是怎么解决的吗?
论坛优秀回答者
关注者: 90
拟合,fx1, fx2是上下圆周曲线,用非线性拟合得到其方程。
<h1 style="color:# 麦片财富积分
y1=sqrt(400.675344*x-0.999826*x^2)
y2=-sqrt(400.675344*x-0.999826*x^2)
大神您好& & 拟合曲线和作出这个圆 是如何实现的&&解决这一类问题怎么个程序& &求告知一下& &
<h1 style="color:# 麦片财富积分
关注者: 2
function [xc,yc,R,a]=circlefit(x,y)
% CIRCLEFIT fits a circle in x,y plane
% x^2+y^2+a(1)*x+a(2)*y+a(3)=0
n=length(x);
A=[sum(x) sum(y)sum(xy) sum(yy) sum(y);sum(xx) sum(xy) sum(x)];
B=[-sum(xx+yy);-sum(xx.*y+yy.*y);-sum(xx.*x+xy.*y)];
xc=-0.5*a(1);
<h1 style="color:# 麦片财富积分
关注者: 2
X=[6.2 17.4 6.8 17.7];
Y=[-18.8 -9.6 18.5 9.9];
[x1,y1,r1,a]=circlefit(X,Y);
plot(X,Y,'r*');
alpha=linspace(0,2*pi,100);
plot(x1+r1*cos(alpha),y1+r1*sin(alpha),'g-');
<h1 style="color:#0 麦片财富积分
关注者: 4
function [xc,yc,R,a]=circlefit(x,y)
% CIRCLEFIT fits a circle in x,y plane
% x^2+y^2+a(1)*x+a(2)*y+a ...function [xc,yc,R,a]=circlefit(x,y)
% CIRCLEFIT fits a circle in x,y plane
% x^2+y^2+a(1)*x+a(2)*y+a(3)=0
n=length(x);
xx=x.*x;
yy=y.*y;
xy=x.*y;
A=[sum(x) sum(y)sum(xy) sum(yy) sum(y);sum(xx) sum(xy) sum(x)];
B=[-sum(xx+yy);-sum(xx.*y+yy.*y);-sum(xx.*x+xy.*y)];
a=A\B;
xc = -0.5*a(1);
yc = -0.5*a(2);
R = sqrt(-(a(3)-xc^2-yc^2));
end复制代码把函数内容补全,方便后来者想要用的时候,可以直接用。而且这个系数a事实上,不一定需要输出去,用处不大。
不过我还不是很理解A和B,有明白的小伙伴,希望可以指导一下,用的是什么算法?
站长推荐 /3
使用MATLAB和Simulink进行软件无线电设计
Powered by【转】求最小曲率半径matlab源程序
求最小曲率半径matlab源程序整个过程&&&
以下是对一组数据拟合后,并求其最小曲率半径!
%%%%%%%源程序
%第一组数据程序和结果
x=[0......703000
,0............................530000];
y=[-1.....314000
,0.............................250000];
p2=polyfit(x,y,2);
p3=polyfit(x,y,3);
p7=polyfit(x,y,7);
p10=polyfit(x,y,10);
disp('二次拟合曲线'),poly2str(p2,'x')
disp('三次拟合曲线'),poly2str(p3,'x')
disp('七次拟合曲线'),poly2str(p7,'x')
disp('十次拟合曲线'),poly2str(p10,'x')
x1=0:0.001:5;
y2=polyval(p2,x1);
y3=polyval(p3,x1);
y7=polyval(p7,x1);
y10=polyval(p10,x1);
二次拟合曲线 =-0.26009 x^2 + 1.7602 x - 0.30805
三次拟合曲线 =0.080148 x^3 - 0.78555 x^2 + 2.6038 x - 0.48873
七次拟合曲线 =0.01144 x^7 - 0.19995 x^6 + 1.4047 x^5 - 5.0742 x^4 +
10.0226 x^3 - 10.8175 x^2 + 6.7818 x - 0.76727
十 次拟合曲线 = -0.0050218 x^10 + 0.12089 x^9 - 1.2474 x^8 + 7.207 x^7 -
25.5682 x^6+ 57.473 x^5 - 81.5968 x^4 + 70.9115 x^3 - 35.7353 x^2 +
10.7184 x- 0.84748&&
%求二次曲线下的最小曲率半径
y=-0.26009*x^2+1.7602*x-0.30805;
k2=diff(y,2);
k2=abs(k2);
k1=diff(y,1);
k=k2./((1+k1.^2).^(3/2)); %曲率求解
x=[0......703000
,0............................530000];
kk=subs(k);
kk=double(kk);
mk=max(kk) %最大曲率
minQL=1/mk %最小曲率半径
mk = 0.5194
minQL =1.9253
%求十次曲线下的最小曲率半径
y=-0.0050218*x^10+0.12089*x^9-1.2474*x^8+7.207*x^7-25.5682*x^6+57.473*x^5*-81.5968*x^4+70.9115*x^3-35.7353*x^2+10.7184*x-0.84748;
k2=diff(y,2);
k2=abs(k2);
k1=diff(y,1);
k=k2./((1+k1.^2).^(3/2));
x=[0......703000
,0............................530000];
kk=subs(k);
kk=double(kk);
mk=max(kk)
minQL=1/mk
mk =10.6374
minQL = 0.0940
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 matlab 数据提取 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信