直接把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('原始数据','拟合数据')
这种情况下不应该拟合所有的数据. 而是应该作误差条形图. 一个例子如下:
图中方框是平均值.
接下来你可以对平均值做一个曲线拟合.