我有三个数据点,通过它我必须拟合Y = m * X + C形式的直线。我希望线具有预先确定的斜率'm',但是常数'C'可以在使用matlab进行拟合时改变以获得最小的误差。有人可以帮助我吗?
答案 0 :(得分:2)
做数学:
C =平均值(Y)-m *平均值(X)
假设Y是包含y坐标的向量,X是x坐标。
参考:http://hotmath.com/hotmath_help/topics/line-of-best-fit.html
答案 1 :(得分:0)
如果您选择使用曲线拟合工具箱,解决方案如下。
开始生成一些数据
m = 3;
x = (1:10).';
y = m*x + 2 + randn(size(x));
然后选择要拟合的模型并设置其系数的界限
ft = fittype('poly1');
opts = fitoptions('Method', 'LinearLeastSquares');
opts.Lower = [m -Inf];
opts.Upper = [m Inf];
最后调用拟合例程
[fitresult, gof] = fit(x, y, ft, opts);
拦截存储在fitresult.p2
。