Укажите информацию о размерности входного порта
int_T ssSetInputPortDimensionInfo(SimStruct *S, int_T port, DimsInfo_T *dimsInfo)
SSimStruct, представляющий Блок 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