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

2024-11-18 10:15:56
推荐回答(2个)
回答1:

直接把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('原始数据','拟合数据')

回答2:

这种情况下不应该拟合所有的数据. 而是应该作误差条形图. 一个例子如下: 

图中方框是平均值. 


接下来你可以对平均值做一个曲线拟合.