mdlSetDefaultPortDimensionInfo

Установите размерности по умолчанию сигналов, принятых или излучаемых портами S-функции MEX C

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_DEFAULT_PORT_DIMENSION_INFO
void mdlSetDefaultPortDimensionInfo(SimStruct *S)

Аргументы

S

SimStruct, представляющий блок S-Function.

Описание

Simulink® engine вызывает этот метод во время распространения размерности сигнала, когда модель не предоставляет достаточной информации, чтобы определить размерность сигналов, которые могут войти или покинуть блок, представленный S. Этот метод должен задать размерности любых входов и выходных портов, которые динамически имеют значения по умолчанию. Этот метод действителен только для симуляции и должен быть заключен в #if defined(MATLAB_MEX_FILE) оператор.

Если S-функция не реализует этот метод, механизм пытается найти набор размерностей, который будет удовлетворять правилам распространения размерности, реализованным с помощью mdlSetInputPortDimensionInfo и mdlSetOutputPortDimensionInfo. Этот процесс, возможно, не сможет создать допустимый набор измерений для S-функций со специальными требованиями к размерности.

Механизм вызывает ошибку, если mdlSetDefaultPortDimensionInfo метод пытается изменить размерности порта, когда размерности были предварительно заданы mdlSetInputPortDimensionInfo или mdlSetOutputPortDimensionInfo. Если S-функция имеет несколько входных или выходных портов, mdlSetDefaultPortDimensionInfo перед попыткой установить размерности необходимо проверить, являются ли размерности порта все еще динамическими. Для примера, mdlSetDefaultPortDimensionInfo использует следующие линии, чтобы проверить, неизвестны ли размерности первого выходного порта.

     if (ssGetOutputPortWidth(S, 0) == DYNAMICALLY_SIZED) {
        ssSetOutputPortMatrixDimensions(S, 0, 1, 1 );
     }

Пример

См. sfun_matadd.c для примера использования этой функции.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте