mdlSetDefaultPortDimensionInfo

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_DEFAULT_PORT_DIMENSION_INFO
void mdlSetDefaultPortDimensionInfo(SimStruct *S)

Аргументы

S

SimStruct, представляющий Блок s-function.

Описание

Механизм Simulink® вызывает этот метод во время распространения размерности сигнала, когда модель не предоставляет достаточно информации, чтобы определить размерность сигналов, которые могут ввести или оставить блок представленным 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