Generate MATLAB Function Blocks from Symbolic Expressions
Using matlabFunctionBlock, you can generate a MATLAB® Function block. The generated block is available for use in Simulink® models, whether or not the computer running the simulations has a license for
            Symbolic Math Toolbox™.
Generate and Edit a Block
Suppose, you want to create a model involving the symbolic expression r =
                sqrt(x^2 + y^2). Before you can convert a symbolic expression to a
                MATLAB Function block, create an empty model or open an existing one:
new_system('my_system') open_system('my_system')
Create a symbolic expression and pass it to the matlabFunctionBlock
            command. Also specify the block name:
syms x y r = sqrt(x^2 + y^2); matlabFunctionBlock('my_system/my_block', r)
If you use the name of an existing block, the matlabFunctionBlock
            command replaces the definition of an existing block with the converted symbolic
            expression.
You can open and edit the generated block. To open a block, double-click it.
function r = my_block(x,y) %#codegen % x = complex(x); % required to enforce complex operations on x % y = complex(y); % required to enforce complex operations on y r = sqrt(x.^2+y.^2);
Tip
Some symbolic expressions cannot be represented using MATLAB functions. matlabFunctionBlock cannot convert these
                symbolic expressions, but issues a warning. Since these expressions might result in
                undefined function calls, always check conversion results and verify results by
                running the simulation containing the resulting block.
Control the Order of Input Ports
matlabFunctionBlock generates input variables and the corresponding
            input ports in alphabetical order from a symbolic expression. To change the order of
            input variables, use the vars option:
syms x y mu = sym('mu'); dydt = -x - mu*y*(x^2 - 1); matlabFunctionBlock('my_system/my_block', dydt,'vars', [y mu x])
Name the Output Ports
By default, matlabFunctionBlock generates the names of the output
            ports as the word out followed by the output port number, for
            example, out3. The output option allows you to use
            the custom names of the output ports:
syms x y mu = sym('mu'); dydt = -x - mu*y*(x^2 - 1); matlabFunctionBlock('my_system/my_block', dydt,'outputs',{'name1'})