Main Content

Constraints and Limitations of Blocks That Support Symbolic Dimensions

The Simulink Block Data Type Support table includes a column identifying the blocks that supports symbolic dimension propagation. To find out which blocks support symbolic dimension specification, enter showblockdatatypetable at the MATLAB command prompt and see symbolic dimension support column.

Modeling Patterns That Can Cause Errors

These modeling patterns are among those modeling patterns that can cause Simulink to report an error:

  • A Switch block has an input signal or the Threshold parameter with symbolic dimensions and you select Allow different data input sizes (Results in variable-size output signal).

  • A Data Store Read block selects elements of a Simulink.Bus signal that has symbolic dimensions.

  • A Lookup Table block has the block parameter Use one input port for all input data selected.

Cases Where Supported Blocks Do Not Propagate Symbolic Dimensions

In these cases, supported blocks do not propagate symbolic dimensions.

  • An Assignment or Selector block has block parameter Index Option set to Index vector (dialog). If you specify a symbolic dimension for the Index parameter for these blocks, the code generator does not honor the symbolic dimension in the generated code.

  • A Product block has block parameters Number of inputs set to 1 and Multiply over set to Specified dimensions.

  • A For Each block has the block parameter Partition Width set to a symbolic dimension.

Backward Compatibility

If an existing model uses Simulink.Parameter objects to specify dimensions, it may be incompatible with symbolic dimensions. Two common scenarios are:

  • Only a subset of blocks accepts symbolic dimension specifications. If a block is not compatible with symbolic dimensions, it causes an update diagram error.

  • Simulink.Parameter objects that you use to define symbolic dimensions or that have symbolic dimensions must have one of the storage classes prescribed. If these specifications are not met, the build procedure for the model fails during code generation. For more information, see Storage Classes for Symbolic Dimensions (Embedded Coder).

To address the backward compatibility issues:

  • Turn off symbolic dimensions by clearing the Allow symbolic dimension specification parameter in the Configuration Parameters dialog box.

  • Update Simulink.Parameter objects that define symbolic dimensions or have symbolic dimension specifications.

  • Update the model so that only supported blocks have symbolic dimensions or propagate symbolic dimensions.

See Also

Topics