我可以在GUI上成功显示数据点(使用GUIDE构建)。 我就是这样做的:
t = t_rec(:);
d_PCr = d_PCr_rec(:);
plot(handles.axes_tau, t, d_PCr, 'wo', 'MarkerFaceColor', [0.5 0.5 0.5]);
但我想重叠这些数据点。 以下是我如何拟合数据:
ok_ = isfinite(t) & isfinite(d_PCr);
if ~all( ok_ )
warning( 'GenerateMFile:IgnoringNansAndInfs', ...
'Ignoring NaNs and Infs in data' );
end
st_ = [1.1 1.1 0.0945 ];
ft_ = fittype('a+b*[1-exp(-(x-300)/t1)]',...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'a', 'b', 't1'});
cf_ = fit(t(ok_), d_PCr(ok_), ft_, 'Startpoint', st_);
我应该采用什么语法来拟合我的数据点?
我的 axes_tau 已在add
。
答案 0 :(得分:1)
假设您有2D拟合,它将作为cfit
对象返回。 cfit
函数可以直接评估tf_ = [t(1):((t(end)-t(1))/1000):t(end)]; % 1000 will make it smooth and dense. Pick a number that suits you.
yf_ = feval(cf_, tf_); % Evaluate the fit
plot(handles.axes_tau, tf_, yf_, 'k-');
。假设你想绘制比原始数据更平滑的拟合。您可以执行以下操作来评估返回的拟合:
t(0)
由于拟合对象只是一组描述您拟合的分析函数的系数,因此您可以根据需要粗略或精细地对其进行采样。选择一组采样点,在屏幕上显示平滑的曲线。在此示例中,我刚刚从t(end)
到{{1}}制作了1001个样本。