how do I store and use fitobjects

22 次查看(过去 30 天)
For reasons I won't go into I need to store a series of curve fits and plot them all at once.
I calculate a fit to a set of points as follows:
f{i} = fit(x,y,fitModel,fitOptions)
and then plot it using
plot(f{k}, cmap(k,:));
but I get the message
Error using cfit/plot>parseinput (line 328)
Must specify both XDATA and YDATA.
Error in cfit/plot (line 42)
[S1,xdata,ydata,S2,outliers,S3,ptypes,conflev] =
parseinput(alltypes,varargin);
If I look at f{i} , e.g. f{1}:
>> f{1}
ans =
Linear model Poly1:
ans(x) = p1*x + p2
Coefficients (with 95% confidence bounds):
p1 = 92.11 (60.03, 124.2)
p2 = 3.611 (-1.991, 9.212)
If I just do f = fit(x,y,fitModel,fitOptions) and plot(f,cmap(k,:)) it works just fine.
How do I store the curves and then plot them all later in the script?

回答(1 个)

Sindhuja Parimalarangan
You could store all the curve fit objects as elements of a cell arrays and then use cellfun to plot all the elements as shown in the following example :
load hahn1
f{1} = fit( temp, thermex, 'rat23' )
f{2} = fit( temp, thermex, 'exp2' )
f{3} = fit( temp, thermex, 'fourier3' )
%%plotting the above curves together %%
figure
hold on
cellfun(@plot,f)
colormap and "ColorOrder" property of plot function maybe useful to enhance the plot.

类别

Help CenterFile Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by