Укажите информацию о размерности входного порта
int_T ssSetInputPortDimensionInfo(SimStruct *S, int_T port, DimsInfo_T *dimsInfo)
SSimStruct представляет S-функциональный блок.
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 для 1-D (векторного) сигнала или 2 для 2-D (матричного) сигнала, или 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 для полных примеров использования этой функции.