我正在尝试用matlab中的最佳拟合线绘制散点图,我可以使用散点图(x1,x2)或散点图(x1,x2)获得散点图,但基本拟合选项被遮蔽了并且lsline返回错误'找不到允许的行类型。什么都没做'
任何帮助都会很棒,
谢谢, 乔恩。
答案 0 :(得分:22)
lsline
仅在统计工具箱中可用,您是否拥有统计工具箱?更通用的解决方案可能是使用polyfit
。
您需要使用polyfit
为您的数据添加一行。假设您在y
中有一些数据,并且您在x
中有相应的域值,(即您的任意y = f(x)
数据近似为f
),那么您可以拟合线性曲线如下:
p = polyfit(x,y,1); % p returns 2 coefficients fitting r = a_1 * x + a_2
r = p(1) .* x + p(2); % compute a new vector r that has matching datapoints in x
% now plot both the points in y and the curve fit in r
plot(x, y, 'x');
hold on;
plot(x, r, '-');
hold off;
请注意,如果要将任意多项式拟合到数据中,可以通过将polyfit的最后一个参数更改为curvefit的维数来实现。假设我们称这个维度为d
,您将在d+1
中收到回p
个系数,这些系数表示符合f(x)
估算值的多项式:
f(x) = p(1) * x^d + p(2) * x^(d-1) + ... + p(d)*x + p(d+1)
编辑,如评论中所述,您也可以使用polyval
来计算r
,其语法如下:
r = polyval(p, x);
答案 1 :(得分:0)
数据中忽略了复数的Infs,NaNs和虚部。
曲线拟合工具提供灵活的图形用户界面,您可以交互地将曲线和曲面拟合到数据和视图。你可以:
创建,绘制和比较多个拟合
使用线性或非线性回归,插值,局部平滑回归或自定义方程
查看拟合优度统计数据,显示置信区间和残差,删除异常值并使用validationdata评估拟合
自动生成用于拟合和绘制表面的代码,或将拟合导出到工作空间以进行进一步分析