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 toSpecified 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.