Задайте информацию о размерности входного порта
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 для 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
для полных примеров, которые используют эту функцию.