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

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