MATLAB® Coder™ generates readable and portable C and C++ code from Statistics and Machine Learning Toolbox functions that support code generation. For example, you can classify new observations on hardware devices that cannot run MATLAB by deploying a trained support vector machine (SVM) classification model to the device using code generation.
You can generate C/C++ code for the Statistics and Machine Learning Toolbox functions in several ways.
Code generation for the object function (predict
,
random
, knnsearch
, or
rangesearch
) of a machine learning model — Use
saveLearnerForCoder
,
loadLearnerForCoder
, and
codegen
. Save a trained
model by using saveLearnerForCoder
. Define
an entry-point function that loads the saved model by using loadLearnerForCoder
and
calls the object function. Then use codegen
to generate code
for the entry-point function.
Code generation for the predict
and update
functions of a tree model, an SVM model, a linear
model, or a multiclass error-correcting output codes (ECOC)
classification model using SVM or linear binary learners — Create a
coder configurer by using learnerCoderConfigurer
and then generate code by using
generateCode
. You can update model parameters in the
generated C/C++ code without having to regenerate the code.
Other functions that support code generation — Use codegen
. Define an
entry-point function that calls the function that supports code
generation. Then generate C/C++ code for the entry-point function by
using codegen
.
You can also generate fixed-point C/C++ code for the prediction of an SVM model, a decision tree model, and an ensemble of decision trees. This type of code generation requires Fixed-Point Designer™.
For a list of functions that support code generation, see Function List (C/C++ Code Generation)
To learn about code generation, see Introduction to Code Generation.
Introduction to Code Generation
Learn how to generate C/C++ code for Statistics and Machine Learning Toolbox functions.
General Code Generation Workflow
Generate code for Statistics and Machine Learning Toolbox functions that do not use machine learning model objects.
Code Generation for Prediction of Machine Learning Model at Command Line
Generate code for the prediction of a classification or regression model at the command line.
Code Generation for Prediction of Machine Learning Model Using MATLAB Coder App
Generate code for the prediction of a classification or regression model by using the MATLAB Coder app.
Code Generation for Prediction and Update Using Coder Configurer
Generate code for the prediction of a model using a coder configurer, and update model parameters in the generated code.
Code Generation and Classification Learner App
Train a classification model using the Classification Learner app, and generate C/C++ code for prediction.
Code Generation for Nearest Neighbor Searcher
Generate code for finding nearest neighbors using a nearest neighbor searcher model.
Specify Variable-Size Arguments for Code Generation
Generate code that accepts input arguments whose size might change at run time.
Train SVM Classifier with Categorical Predictors and Generate C/C++ Code
Convert categorical predictors to numeric dummy variables before fitting an SVM classifier and generating code.
Fixed-Point Code Generation for Prediction of SVM
Generate fixed-point code for the prediction of an SVM classification or regression model.
Code Generation for Probability Distribution Objects
Generate code that fits a probability distribution object to sample data and evaluates the fitted distribution object.
Generate Code to Classify Numeric Data in Table
Generate code for classifying numeric data in a table using a binary decision tree.
Predict Class Labels Using MATLAB Function Block
Generate code from a Simulink® model that classifies data using an SVM model.
System Objects for Classification and Code Generation
Generate code from a System object™ for making predictions using a trained classification model, and use the System object in a Simulink model.
Predict Class Labels Using Stateflow
Generate code from a Stateflow® model that classifies data using a discriminant analysis classifier.