我使用Matlab R2016a中的曲线拟合来寻找两个数组之间的最佳拟合一个数组表示给定经纬度的某个值,另一个数组表示收集该值的日期。
在使用曲线拟合工具时,我可以找到一条最适合的直线,并绘制残差我只关心残差——但是,当我将残差导出到工作区时,它们被表示为一列数字如果没有该残差与原始数组关系的标识信息(即,每个残差对应于哪个X,Y对),这对我没有帮助
曲线拟合工具中残差图的数据正是我想要的有没有一种方法可以将其导出为可用的?
最佳答案
cftool
在其核心使用fit
要进一步研究拟合及其残差,可以将拟合导出到工作区通过“曲线拟合工具”窗口顶部的“拟合”菜单执行此操作,然后选择“保存到工作区”使用此拟合对象(曲线的cfit
或曲面的sfit
),可以执行与使用曲线拟合工具相同的分析和更多操作。
让我来演示如何获得拟合、创建残差图以及如何计算残差结果图像如下所示在代码中,residuals
变量包含与x
和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