Relational and Logical Operators
This example shows how to implement relational and logical operators by using Simulink® blocks, Stateflow® Charts, and MATLAB® Function blocks.
Modeling Pattern for Relational or Logical Operators — Simulink Blocks
To include a logical operation in your model, use the Logical Operator block from the Logic and Bit Operations library.
1. Open example model ex_data_type_SL.

The Logical Operator block performs an OR operation in the model. To change the operation, double-click the block and set the Operator field to any of the operations in the menu.
You can implement relational operators by replacing the Logical Operator block with a Relational Operator block.
2. To build the model and generate code, press Ctrl+B.
The code implementing the logical operator OR is in the ex_logical_SL_step function in ex_logical_SL.c.
/* Exported block signals */
boolean_T u1; /* '<Root>/u1' */
boolean_T u2; /* '<Root>/u2' */
boolean_T y1; /* '<Root>/y1' */
/* Model step function */
void ex_logical_SL_step(void)
{
/* Outport: '<Root>/y1' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
* Logic: '<Root>/Logical Operator'
*/
y1 = (u1 || u2);
}
Modeling Pattern for Relational and Logical Operators — Stateflow Chart
1. Open example model ex_data_type_SF.

In the Stateflow chart, the relational or logical operation actions are on the transition from one junction to another. Relational statements specify conditions to conditionally allow a transition. In that case, the statements are within square brackets.
2. To build the model and generate code, press Ctrl+B.
The code implementing the logical operator OR is in the ex_logical_SF_step function in ex_logical_SF.c.
/* Exported block signals */
boolean_T u1; /* '<Root>/u1' */
boolean_T u2; /* '<Root>/u2' */
boolean_T y1; /* '<Root>/Logical Operator' */
/* Model step function */
void ex_logical_SF_step(void)
{
/* Chart: '<Root>/Logical Operator' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
*/
y1 = (u1 || u2);
}
Modeling Pattern for Relational and Logical Operators — MATLAB Function Block
This example shows the MATLAB Function block method for incorporating operators into the generated code by using a relational operator.
1. Open example model ex_logical_ML.

2. The MATLAB Function Block contains this function:
function y1 = fcn(u1, u2) y1 = u1 > u2; end
3. To build the model and generate code, press Ctrl+B.
The generated code appears in ex_data_type_ML.c:
/* Exported block signals */
real_T u1; /* '<Root>/u1' */
real_T u2; /* '<Root>/u2' */
boolean_T y; /* '<Root>/MATLAB Function' */
/* Model step function */
void ex_logical_ML_step(void)
{
/* MATLAB Function: '<Root>/MATLAB Function' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
*/
y = (u1 > u2);
}