我在 Matlab R2016a 中使用曲线拟合来找到两个数组之间的最佳拟合。一个数组表示给定纬度和经度处的某个值,另一个数组表示收集该值的日期。
在使用曲线拟合工具时,我能够找到一条最佳拟合线并绘制残差。我只关心残差——但是,当我将残差导出到工作区时,它们会表示为一列数字。如果没有残差与原始数组的关系的识别信息(即每个残差对应于哪一个 X,Y 对?),这对我没有帮助。
曲线拟合工具中残差图的数据正是我想要的。有没有办法以使其可用的方式导出它?
The cftool
uses fit
在其核心。为了进一步探索拟合及其残差,您可以将拟合导出到您的工作区。通过“曲线拟合工具”窗口顶部的“拟合”菜单执行此操作,然后选择“保存到工作区”。使用此拟合对象(acfit
对于曲线或sfit
对于曲面),您可以执行与使用曲线拟合工具相同的分析以及更多分析。
让我说明如何获得拟合、创建残差图以及如何计算残差。生成的图像如下所示。在代码中,residuals
变量包含与属于每个样本对的每个元素的拟合残差x
and y
.
% Generate data
rng default
x = sort(rand(10, 1));
y = randn(size(x)) - 3*x;
% Fit a line
fitted = fit(x, y, fittype('poly1'));
% Plot fitted line with data
figure
subplot 311
plot(fitted, x, y)
% Plot residuals
subplot 312
plot(fitted, x, y, 'residuals)')
ylabel residuals
% Get residuals
residuals = y - fitted(x);
% Create stem plot of residuals
subplot 313
stem(x, residuals)
legend residuals
xlabel x
ylabel residuals
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)