2013-04-01 75 views
2

使用Matlab软件包cftool进行曲线拟合时,可以选择生成与拟合对应的代码。下面是一个简单的结果:绘图曲线拟合误差带

%% Fit: 'myfit'. 
[xData, yData, weights] = prepareCurveData(x, y, weights); 

% Set up fittype and options. 
ft = fittype('a^x+b', 'independent', 'x', 'dependent', 'y'); 
opts = fitoptions(ft); 
opts.Display = 'Off'; 
opts.Lower = [-Inf -Inf]; 
opts.StartPoint = [0 0]; 
opts.Upper = [Inf Inf]; 
opts.Weights = weights; 

% Fit model to data. 
[fitresult, gof] = fit(xData, yData, ft, opts); 

% Plot fit with data. 
figure('Name', 'myfit'); 
h = plot(fitresult, xData, yData); 
% Label axes 
xlabel('x'); 
ylabel('y'); 
grid on 

我想绘制相同的配合自定义错误棒,使用错误的独立载体。通常,我会使用函数errorbar()代替plot(),但它不接受fitobject对象,例如此代码中的​​。实际上,此代码与plot()一起使用的唯一原因是曲线拟合工具箱中有an overloaded version of plot(),与通常的plot()完全分开,它确实接受这些对象。

我该如何绘制cftool适合错误条?

回答

2

要绘制的数据,不配合,使用合适和errorbars:

plot(fitresult, xData, yData); 
hold on; 
errorbar(xData,yData,errors, '.'); 
0

我不确定您想如何将错误栏纳入您的体型。

如果你想显示两个“A”和“B”与代表CI errorbars,您可以使用confint函数提取CI:

errorbar([fitresult.a; fitresult.b], diff(confint(fitresult))/2,'x') 
+0

我使用自定义的误差线从拟合分开的,所以这是不太什么我想要。 –

1

那么你已经有了合适的,这样你就可以只需使用feval()对拟合的y值进行插值。将此数据与您的自定义错误配对,并将其发送至errorbar()

yFit = feval(fitresult, xData); 
errorbar(xData,yFit,xError,yError); 
+0

这将错误栏放在适合度上,而不是数据上。尽管如此,有用的想法。 –

+0

如果你想要原始数据上的错误条,那么你不能只在你的原始数据中使用errorbar()吗? –