ssSetInputPortDimensionInfo

Укажите информацию о размерности входного порта

Синтаксис

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

Представлено до R2006a