ssSetInputPortDimensionInfo
Specify information about the dimensionality of an input port
Syntax
int_T ssSetInputPortDimensionInfo(SimStruct *S, int_T port, DimsInfo_T *dimsInfo)
Arguments
S
SimStruct that represents an S-Function block.
port
Index of an input port.
dimsInfo
Structure of type
DimsInfo_T
that specifies the dimensionality of the signals accepted byport
.
The structure is defined as
typedef struct DimsInfo_tag{ int width; /* number of elements */ int numDims /* Number of dimensions */ int *dims; /* Dimensions. */ [snip] }DimsInfo_T;
where
numDims
specifies the number of dimensions of the signal, e.g., 1 for a 1-D (vector) signal or 2 for a 2-D (matrix) signal, orDYNAMICALLY_SIZED
if the number of dimensions is determined dynamically.dims
is an integer array that specifies the size of each dimension, e.g.,[2 3]
for a 2-by-3 matrix signal, orDYNAMICALLY_SIZED for each dimension that is determined dynamically, e.g., [2 DYNAMICALLY_SIZED]
.width
equals the total number of elements in the signal, e.g., 12 for a 3-by-4 matrix signal or 8 for an 8-element vector signal, orDYNAMICALLY_SIZED
if the total number of elements is determined dynamically.Note
Use the macro,
DECL_AND_INIT_DIMSINFO
, to declare and initialize an instance of this structure.
Returns
1
if successful; otherwise, 0
.
Description
Specifies the dimension information for port
. Use this function
in mdlInitializeSizes
to initialize the input port dimension
information. If you want the port to inherit its dimensions from the port to which
it is connected, specify DYNAMIC_DIMENSION
as the
dimsInfo
for port
. In this case, the
S-function must provide mdlSetInputPortDimensionInfo
and
mdlSetDefaultPortDimensionInfo
methods to enable the signal dimensions to be set correctly during signal
propagation.
Languages
C, C++
Examples
The following example specifies that input port 0 accepts 2-by-2 matrix signals.
{ DECL_AND_INIT_DIMSINFO(di); int_T dims[2]; di.numDims = 2; dims[0] = 2; dims[1] = 2; di.dims = dims; di.width = 4; ssSetInputPortDimensionInfo(S, 0, &di); }
See the S-function sfun_matadd.c
used in sfcndemo_matadd
and the S-function sdotproduct.c
used in sfcndemo_sdotproduct
for complete examples that use this
function.
Version History
Introduced before R2006a