急需matlab知道两组数据怎么求出它们之间的规律然后拟合成曲线?我刚接触MATLAB.

请知道的大哥大姐帮忙详细写出代码,小弟感激不禁!我会追加分的!

给个简单介绍吧,自己看着用
%多项式插值和拟合
%p=polyfit(x,y,k)
%用k次多项式拟合向量数据(x,y),返回多项式的降幂系数,当k>=n时,polyfit实现多项式插值,这里n是向量维数
x=[0.1 0.2 0.15 0 -0.2 0.3];
y=[0.95 0.84 0.86 1.06 1.50 0.72];
p=polyfit(x,y,2)%二次拟合

xi=-0.2:0.01:0.3;
yi=polyval(p,xi);
subplot(2,2,1);
plot(x,y,'o',xi,yi,'k');
title('polyfit');

%五次拟合
p2=polyfit(x,y,5)
yi=polyval(p2,xi);
subplot(2,2,2);
plot(x,y,'o',xi,yi,'k');
title('polyinterp');

非线性最小二乘拟合:
%非线性最小二乘拟合
%c=lsqcurvefit(Fun,c0,x,y) Fun为两变量函数f(c,x),c0为参数c的近似值,作为迭代初值,x,y为数据向量
%c=lsqcurve(Run,c0,x,y,lc,uc,options,p1,p2,...)可以设置参数c取值于区间[lc,uc],options为
%优化计算参数选项,p1,p2,...为向函数Fun传递附加参数

%拟合非线性函数y=a*exp(b*x),首先讲参数a,b合写为c
fun=inline('c(1)*exp(c(2)*x)','c','x')
x=[0.1 0.2 0.15 0 -0.2 0.3];
y=[0.95 0.84 0.86 1.06 1.50 0.72];
c=lsqcurvefit(fun,[0 0],x,y)%初始值为a=0,b=0

norm(feval(fun,c,x)-y)^2%残差平方和

%lsqcurvefit可以作为各种类型曲线的拟合,最小二乘法能找到符合经验公式的最优曲线,但是这一经验公式是否有效还需要事后检验.一般可以从图像上作
%出判断,定量方法是计算残差平方和,再进行统计检验.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-24

clear all

clc

x=rand(1,7); %1*n向量

y=rand(1,7); %1*n向量

plot(x,y)  %

运行后得到这个图,其中菜单栏上有个Tools-Basic fitting,其中有很多拟合选项,同时给出拟合结果及残差等信息

第2个回答  2010-04-24
f=plotfit(x,y,n);
% x,y为数据源矩阵,n为想拟合的多项式的阶数,返回多项式各项的系数矩阵。