如何用Matlab根据测量点拟合成封闭图形?

小弟是Matlab新手。我测量了一个凸轮表面的若干个点(同一平面内)。请问哪位大侠知道如何用Matlab拟合成形状为凸轮的封闭图形?多谢了!x=[0.11.31.51.8... 小弟是Matlab新手。我测量了一个凸轮表面的若干个点(同一平面内)。请问哪位大侠知道如何用Matlab拟合成形状为凸轮的封闭图形?多谢了!

x=[
0.1 1.3 1.5 1.8 2.5 3.2 3.5 3 2 1 0 -1 -2 -2.5 -3 -2.8 -2 -1.2 -1.2 -1.3 -0.1]

y=[
3.8 3.5 2 1.5 1.5 1 0 -1 -2 -2.3 -2.7 -2.2 -1.9 -1 0 1 1.2 1.5 2 3 3.7]
如果我想对于这个图形进行分段多项式计算因该则么写?多谢!
展开
 我来答
fxrcyxx
2008-07-15 · TA获得超过101个赞
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
x=[-3 -2.8 -2 -1.2 -1.2 -1.3 -0.1 0.1 1.3 1.5 1.8 2.5 3.2 3.5 3 2 1 0 -1 -2 -2.5 -3] ;
y=[0 1 1.2 1.5 2 3 3.7 3.8 3.5 2 1.5 1.5 1 0 -1 -2 -2.3 -2.7 -2.2 -1.9 -1 0];
[a,l]=cart2pol(x,y);
n=length(a);
a(n)=-a(n);
x1=-3.14:0.01:3.14;
y1=interp1(a,l,x1,'spline');
y2=interp1(a,l,x1,'cubic');
[x2,y3]=pol2cart(x1,y1);
[x3,y4]=pol2cart(x1,y2);
figure(1)
plot(x,y,'k+')
hold on
plot(x2,y3,'b-')
figure(2)
plot(x,y,'k+')
hold on
plot(x3,y4,'r-')

你给的是直角坐标,先将其转换为极坐标后用插值法得到中间值后在转换回去,就可以绘出图来了。由于不知道该曲线的极坐标形式的函数形式,我用了三次样条和三次多项式两种插值法得到的图效果都不怎么好。用多项式拟合的话效果更差,下面的程序是用多项式拟合的。你可以自己调整下拟合次数看看(为了计算方便,我将你的原始数据的后7个换到了前面,这样能保证极坐标的角度是单调递减的)

x=[-3 -2.8 -2 -1.2 -1.2 -1.3 -0.1 0.1 1.3 1.5 1.8 2.5 3.2 3.5 3 2 1 0 -1 -2 -2.5 -3] ;
y=[0 1 1.2 1.5 2 3 3.7 3.8 3.5 2 1.5 1.5 1 0 -1 -2 -2.3 -2.7 -2.2 -1.9 -1 0];
[a,l]=cart2pol(x,y);
n=length(a);
a(n)=-a(n);
x1=-3.14:0.01:3.14;
p1=polyfit(a,l,12);%12次多项式
p2=polyfit(a,l,14);%14次多项式
y1=polyval(p1,x1);
y2=polyval(p2,x1);
[x2,y3]=pol2cart(x1,y1);
[x3,y4]=pol2cart(x1,y2);
figure(1)
plot(x,y,'k+')
hold on
plot(x2,y3,'b-')
figure(2)
plot(x,y,'k+')
hold on
plot(x3,y4,'r-')
杨好巨蟹座
推荐于2018-03-30 · TA获得超过5万个赞
知道大有可为答主
回答量:6197
采纳率:80%
帮助的人:1258万
展开全部
先进行坐标变换,再插值,然后再反变换。效果还算可以。
例如:已知点有八个点,横坐标依次为:x = [1 , 0.707 , 0 , -0.707 , -1 , -0.707 , 0 , 0.707];对应纵坐标依次为y = [0 , 0.707 , 1 , 0.707 , 0 , -0.707 , -1 , -0.707 ];对其进行直角坐标与极坐标转换得到转换后的坐标,r = [1 , 1 , 1 , 1 , 1 , 1 , 1 , 1]; theta = [ 0 , 0.25*pi , 0.5*pi , 0.75*pi , pi , 1.25*pi ,1.5*pi , 1.75*pi ]; 然后进行插值,由于这些点都在一条直线上,所以插值后的点也在这条直线上,例如插值的theta = 0:0.1:2*pi;那么得到的r即为和theta长度相等,内容全为1的值,然后再由极坐标变换到直角坐标下,就是一个圆了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Paradise1022
2008-07-14 · TA获得超过434个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:265万
展开全部
凸轮的数学形态表达式要给出,不然没办法拟合,只能画图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanarri
2008-07-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5123
采纳率:33%
帮助的人:8081万
展开全部
大概是个什么曲线呢?
如果函数表达式的大致形式,可以用lsqcurvefit和nlinfit试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackjunger
2008-07-13
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
曲线的样子有点近似葫芦形,轮廓上小下大。不知道怎么编出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式