Укажите информацию о размерности входного порта
int_T ssSetInputPortDimensionInfo(SimStruct *S, int_T port, DimsInfo_T *dimsInfo)
S
SimStruct, представляющий Блок s-function.
port
Индекс входного порта.
dimsInfo
Структура типа DimsInfo_T
, который задает размерность сигналов, принятых port
.
Структура задана как
typedef struct DimsInfo_tag{ int width; /* number of elements */ int numDims /* Number of dimensions */ int *dims; /* Dimensions. */ [snip] }DimsInfo_T;
где
numDims
задает количество размерностей сигнала, например, 1 для 1D (векторного) сигнала или 2 для 2D (матричного) сигнала или DYNAMICALLY_SIZED
, если количество размерностей определяется динамически.
dims
является целочисленным массивом, который задает размер каждой размерности, например, [2 3]
для 2 3 матричного сигнала или DYNAMICALLY_SIZED for each dimension that is determined dynamically, e.g., [2 DYNAMICALLY_SIZED]
.
width
равняется общему количеству элементов в сигнале, например, 12 для матричного сигнала 3 на 4 или 8 для векторного сигнала с 8 элементами или DYNAMICALLY_SIZED
, если общее количество элементов определяется динамически.
Используйте макрос, DECL_AND_INIT_DIMSINFO
, чтобы объявить и инициализировать экземпляр этой структуры.
1
, если успешный; в противном случае, 0
.
Указывает информацию размерности для port
. Используйте эту функцию в mdlInitializeSizes
, чтобы инициализировать информацию о размерности входного порта. Если вы хотите, чтобы порт наследовал свои размерности от порта, до которого он соединяется, задайте DYNAMIC_DIMENSION
как dimsInfo
для port
. В этом случае S-функция должна обеспечить mdlSetInputPortDimensionInfo
и методы mdlSetDefaultPortDimensionInfo
, чтобы позволить размерностям сигнала быть установленными правильно во время распространения сигнала.
C, C++
Следующий пример указывает, что входной порт 0 принимает матричные сигналы 2 на 2.
{ 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); }
Смотрите S-функцию sfun_matadd.c
, используемый в sfcndemo_matadd
и S-функции sdotproduct.c
, используемый в sfcndemo_sdotproduct
для полных примеров, которые используют эту функцию.
ssSetInputPortMatrixDimensions
, ssSetInputPortVectorDimension