MATLAB-工具箱-如何导出拟合系数?

近期发现,当待拟合曲面的数值较大时,使用工具箱拟合之后,复制出来的系数精度不够,导致画出来的图形与原始图形相比,误差甚大。

由上图可知,使用导出系数画图与工具箱的RMES系数几乎一样。  

那么,如何将系数导出呢?

如图,在工具箱中,选择好要使用的拟合函数并拟合完成后,点击文件——Generate Code

 将会生成拟合函数,函数如:

function [fitresult, gof] = createFit(X, Y, phi_margin)
% Fit: 'untitled fit 1'.
[xData, yData, zData] = prepareSurfaceData( X, Y, phi_margin );

% Set up fittype and options.
ft = fittype( 'poly44' );%★这里我用的高次多项式拟合,x、y最高次数均为4次。

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

% Plot fit with data.
figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, [xData, yData], zData );
legend( h, 'untitled fit 1', 'phi_margin vs. X, Y', 'Location', 'NorthEast' );
% Label axes
xlabel X
ylabel Y
zlabel phi_margin
grid on
view( -55.5, 30.8 );


其中,fittype( 'poly44' ),表示x、y最高次数均为4次,可以手动更改,或者将其作为函数的输入,来进行拟合。

[fitresult, gof] = createFit(X, Y, phi_margin);%使用该函数
P= coeffvalues(fitresult);%输出系数

函数生成的fitresult为sfit文件,包含表达式、系数;gof为结构体,包含误差系数。将得到的系数进行拟合即可。

物联沃分享整理
物联沃-IOTWORD物联网 » MATLAB-工具箱-如何导出拟合系数?

发表评论