早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一个x对应多个y,怎样用matlab曲线拟合?如图,x实际上是1x72的矩阵,目的是记录6年的月平均观测值,然后进行曲线拟合.拟合函数是以月份为变量,所以不能设成1到72.请教下如何实现把x延伸出去的

题目详情
一个x对应多个y,怎样用matlab曲线拟合?


如图,x实际上是1x72的矩阵,目的是记录6年的月平均观测值,然后进行曲线拟合.拟合函数是以月份为变量,所以不能设成1到72.请教下如何实现把x延伸出去的效果?感谢!


▼优质解答
答案和解析
直接把x和y都当成向量处理就可以了:
% 生成示例数据
x=repmat(1:12,6,1);
y=2+3*sin(x)+0.5*rand(size(x));
% 拟合函数
f=@(c,x)c(1)+c(2)*sin(x);
% 拟合
c=lsqcurvefit(f,[1 1],x(:),y(:))
% 绘图
plot(x(:),y(:),'k.',x(1,:),f(c,x(1,:)),'r--')
legend('原始数据','拟合数据')