The MATLAB Function block allows you to add MATLAB® functions to Simulink® models for deployment to desktop and embedded processors. This capability is useful for coding algorithms that are better stated in the textual language of MATLAB than in the graphical language of Simulink. From the MATLAB Function block, you can generate readable, efficient, and compact C/C++ code for deployment to desktop and embedded applications.
MATLAB Function blocks can call any of the following types of functions:
Local functions are defined in the body of the MATLAB Function block. See Call Local Functions.
From MATLAB Function blocks, you can call toolbox
functions that support code generation. When you build your model
with Simulink Coder™, these functions generate C code that is
optimized to meet the memory and performance requirements of desktop
and embedded environments. In the example shown in Call Local Functions,
sum are examples of toolbox functions that
support code generation. For a complete list of supported functions,
see Functions and Objects Supported for C and C++ Code Generation
— Alphabetical List.
From MATLAB Function blocks, you can also call extrinsic functions.
These are functions on the MATLAB path that the compiler dispatches
to MATLAB software for execution because the target language
does not support them. These functions do not generate code; they
execute only in the MATLAB workspace during simulation of the
model. The Simulink Coder software attempts to compile all MATLAB functions
unless you explicitly declare them to be extrinsic by using
See Declaring MATLAB Functions as Extrinsic Functions.
The code generation software detects calls to many common visualization
functions, such as
figure. For MEX code generation, it automatically
calls out to MATLAB for these functions. For standalone code
generation, it does not generate code for these visualization functions.
This capability removes the requirement to declare these functions
extrinsic using the
Functions from Simulink Function blocks and Stateflow® blocks
From MATLAB Function blocks, you can also call functions defined in a Simulink Function block. You can call Stateflow functions with Export Chart Level Functions (Make Global) and Allow exported functions to be called by Simulink checked in the chart Properties dialog box.