使用“基本拟合”工具时,一旦“拟合”完成,就有机会评估/估计某些点的值。我只能复制到绘图部分。我无法弄清楚如何以编程方式重现“评估”函数,以便我可以估计某些点的值并在我的代码中使用它们。我现在能做到这一点的唯一方法是通过图形用户界面,即从图形窗口的主菜单:“工具>>基本拟合”
我不确定我是否足够清楚,但请随时询问您是否需要更多信息。
使用“基本拟合”工具时,一旦“拟合”完成,就有机会评估/估计某些点的值。我只能复制到绘图部分。我无法弄清楚如何以编程方式重现“评估”函数,以便我可以估计某些点的值并在我的代码中使用它们。我现在能做到这一点的唯一方法是通过图形用户界面,即从图形窗口的主菜单:“工具>>基本拟合”
我不确定我是否足够清楚,但请随时询问您是否需要更多信息。
您的问题的答案取决于您要安装的特定模型类型。如果您只是对多项式拟合或更复杂的东西感兴趣,您的问题尚不清楚。对于多项式,您可以使用该polyfit
函数来获取系数,并使用该polyval
函数在某些点进行评估。
%construct a test signal
x = linspace(0,1,100)';
signal = 5*x.^2 + x + 0.5;
noise = 0.1*rand(100,1);
y = signal + noise;
%Plot function
plot(x,[signal,y]);
%Polynomial fitting
n = 2; % order of polynomial
coeff = polyfit(x,y,n) % I get 5.0295, 0.9786, 0.5512
%Evaluate at a certain set of points
x1 = 2.3;
polyval(coeff,x1)
如果您要拟合一个更复杂的模型,那么您将不得不使用cfit
它来进行拟合,这将为您提供一个合适的对象。您必须将该 fit 对象传递给函数feval
以在特定点评估函数。查看这些函数的文档以了解更多信息。
除了 Karthik 的回答,如果您想继续使用交互式拟合但只是想稍后以编程方式评估事物,您应该按屏幕截图左侧的“保存到工作区...”以将拟合信息保存到工作区。默认情况下,这将创建一个名为fit
MATLAB的变量struct
,其字段coeff
包含多项式系数。然后,您可以使用polyval
来评估多项式,如下所示:
polyval(fit.coeff, 5); % get the value at 5