Interactive Curve and Surface Fitting
Introducing Curve Fitter App
You can fit curves and surfaces to data and view plots with the Curve Fitter app.
Create, plot, and compare multiple fits.
Use linear or nonlinear regression, interpolation, smoothing, and custom equations.
View goodnessoffit statistics, display confidence intervals and residuals, remove outliers, and assess fits with validation data.
Automatically generate code to fit and plot curves and surfaces, or export fits to the workspace for further analysis.
Fit Curve
Load some example data at the MATLAB^{®} command line.
load census
Open the Curve Fitter app.
Alternatively, on the Apps tab, in the Math, Statistics and Optimization group, click Curve Fitter.curveFitter
On the Curve Fitter tab, in the Data section, click Select Data. In the Select Fitting Data dialog box, select
cdate
as the X data value andpop
as the Y data value. For details, see Selecting Data to Fit in Curve Fitter App.The Curve Fitter app creates a default polynomial fit to the data.
Try different fit options. For example, in the Fit Options pane, change the polynomial Degree value to
3
to fit a cubic polynomial.Select a different model type from the fit gallery in the Fit Type section on the Curve Fitter tab. For example, click the arrow to open the gallery, and click Smoothing Spline in the Smoothing group. For information about models you can fit, see Model Types for Curves and Surfaces.
In the Export section, click Export and select Generate Code.
The Curve Fitter app creates a file in the Editor containing MATLAB code to recreate the currently selected fit and its opened plots in your interactive session.
Tip
For a detailed workflow example, see Compare Fits in Curve Fitter App.
To create multiple fits and compare them, see Create Multiple Fits in Curve Fitter App.
Fit Surface
Load some example data at the MATLAB command line.
load franke
Open the Curve Fitter app.
curveFitter
On the Curve Fitter tab, in the Data section, click Select Data. In the Select Fitting Data dialog box, select
x
as the X data value,y
as the Y data value, andz
as the Z data value. For more information, see Selecting Data to Fit in Curve Fitter App.The Curve Fitter app creates a default interpolation fit to the data.
Select a different model type from the fit gallery in the Fit Type section on the Curve Fitter tab. For example, click the arrow to open the gallery, and click Polynomial in the Regression Models group.
For information about models you can fit, see Model Types for Curves and Surfaces.
Try different fit options for your chosen model type.
In the Export section, click Export and select Generate Code.
The Curve Fitter app creates a file in the Editor containing MATLAB code to recreate the currently selected fit and its opened plots in your interactive session.
Tip
For a detailed example, see Surface Fitting to Franke Data.
To create multiple fits and compare them, see Create Multiple Fits in Curve Fitter App.
Model Types for Curves and Surfaces
Based on your selected data, the fit gallery shows either curve or surface fit groups. The following table describes the options for curves and surfaces.
Fit Group  Fit Type  Curves  Surfaces 

Regression Models  Polynomial  Yes (up to degree 9)  Yes (up to degree 5) 
Exponential  Yes  No  
Logarithmic  Yes  No  
Fourier  Yes  No  
Gaussian  Yes  No  
Power  Yes  No  
Rational  Yes  No  
Sum of Sine  Yes  No  
Weibull  Yes  No  
Sigmoidal  Yes  No  
Interpolation  Interpolant  Yes, with methods:
 Yes, with methods:

Smoothing  Smoothing Spline  Yes  No 
Lowess  No  Yes  
Custom  Custom Equation  Yes  Yes 
Linear Fitting  Yes  No 
For information about these fit types, see:
Selecting Data to Fit in Curve Fitter App
To interactively select data, import your data into a workspace variable from the command line. Then, open the Curve Fitter app and click Select Data. The Select Data button is in the Data section of the Curve Fitter tab.
The Curve Fitter app uses a snapshot of the data you select. Subsequent workspace changes to the data have no effect on your fits. To update your fit data from the workspace, first change the variable selection, and then reselect the variable with the dropdown controls.
Selecting Data for Curve Fitting
To select data for curve fitting, import the Y data in a vector, table variable, or array. If you have X data, import it also in a vector, table variable, or array. Each of the X and Y variables can be a vector, array, or table variable. However, X and Y must have the same number of elements. Then, do one of the following:
In the Select Fitting Data dialog box, select the variables in the X data and Y data dropdown menus. To select data contained in a table variable, select the table name to display a second dropdown menu to the right. Then, select the variable from the second dropdown menu.
To plot the Y variable against its indices, select only the Y variable from the Y data dropdown menu.
If you specify weights, the weights variable must have the same number of elements as the other data variables.
Selecting Data for Surface Fitting
To select data for surface fitting, save the X, Y and Z data each in a vector, table variable, or array. Each of the variables can be a vector, array, or table variable. However, they must satisfy one of the following:
The X, Y, and Z variables contain the same number of elements.
Note
Curve Fitter app expects data variables to be the same size. If the sizes are different but the number of elements are the same, then the app reshapes the variables to create a fit and displays a warning in the Results pane.
The X variable is a vector containing n elements, the Y variable is a vector containing m elements, and the Z variable is an mbyn matrix. In this case, the Y and X data are treated as headers for table rows and columns, respectively. See Tabular Data for more information.
Note
If the
Z
variable is an nbym matrix, the app creates a fit by transposingZ
and provides a warning about the data transformation. You can see the warning in the Results pane.
In the Select Fitting Data dialog box, select the variables from the X data, Y data, and Z data dropdown menus. If a variable is saved in a table, select the table name to display a second dropdown menu to the right. Then, select the variable from the second dropdown menu.
Similarly, you can select any numeric variable in your workspace to use as Weights, including a numeric table column. If you specify weights, the weights variable must have the same number of elements as the Z variable.
Save and Reopen Sessions
You can save and reopen sessions for easy access to multiple fits. The session file contains all the fits and variables in your session and remembers your layout.
To save your session, first click the Save button in the
File section on the Curve Fitter tab to open
your file browser. Next, select a name and location for your session file (with the file
extension .sfit
).
After you save your session once, you can click Save and select Save Session to overwrite that session with subsequent saves.
To save the current session under a different name, click Save and select Save Session As.
To reopen a session, click Open in the File section on the Curve Fitter tab to open a file browser where you can select a saved curve fitting session file to load.