我正在尝试在 matlab 中使用一条最适合的线绘制散点图,我可以使用 scatter(x1,x2) 或 scatterplot(x1,x2) 获得散点图,但基本拟合选项被遮蔽并且 lsline 返回错误'找不到允许的线型。什么都没做'
任何帮助都会很棒,
谢谢,乔恩。
我正在尝试在 matlab 中使用一条最适合的线绘制散点图,我可以使用 scatter(x1,x2) 或 scatterplot(x1,x2) 获得散点图,但基本拟合选项被遮蔽并且 lsline 返回错误'找不到允许的线型。什么都没做'
任何帮助都会很棒,
谢谢,乔恩。
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 的最后一个参数更改为曲线拟合的维度来实现。假设我们称这个维度d
为 ,您将收到 中的回d+1
系数p
,它表示符合 估计的多项式f(x)
:
f(x) = p(1) * x^d + p(2) * x^(d-1) + ... + p(d)*x + p(d+1)
编辑,如评论中所述,您也可以使用polyval
to compute r
,其语法如下所示:
r = polyval(p, x);
Infs、NaN 和复数的虚部在数据中被忽略。
曲线拟合工具提供了一个灵活的图形用户界面,您可以在其中交互式地将曲线和曲面拟合到数据和视图中。你可以:
创建、绘制和比较多个拟合
使用线性或非线性回归、插值、局部平滑回归或自定义方程
查看拟合优度统计数据,显示置信区间和残差,去除异常值并使用验证数据评估拟合
自动生成拟合和绘图表面的代码,或将拟合导出到工作区以进行进一步分析