И Уровень 2 MATLAB® S-Functions и S-функции C поддерживают сигналы переменного размера, когда вы устанавливаете DimensionMode для выходного порта к Variable
. Также необходимо рассмотреть текущую размерность сигналов ввода и вывода в методах обновления ввода и вывода.
Чтобы открыть эту модель в качестве примера, в Окне Команды MATLAB, введите:
msfcndemo_varsize
Enabled подсистема включает Уровень 2 S-функция MATLAB, которая показывает, как реализовать блок, который содержит его состояния, пока не сброшено. Поскольку этот блок содержит состояния и задерживает входной сигнал, входной размер может измениться только, когда сброс происходит.
Блоком Expand является Уровень 2 S-функция MATLAB, которая берет скалярный вход и выводит вектор длины, обозначенной ее входным значением. Вывод 1:n
, где n
является входным значением.
Чтобы открыть эту модель в качестве примера, в Окне Команды MATLAB, введите:
sfcndemo_varsize
Активированные подсистемы имеют две S-функции:
sfun_varsize_holdStatesUntilReset является S-функцией C, которая имеет состояния и требует, чтобы ее вектор DWorks сбросил каждый раз, когда размеры входного сигнала изменяются.
sfun_varsize_concat1D является S-функцией C, которая реализует конкатенацию двух неориентированных векторов. Можно использовать эту функцию в активированной подсистеме отдельно.