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

https://stackoverflow.com/questions/43579762
复制相似问题