Как я могу написать S-функцию уровня 2 MATLAB, где вход и выход могут иметь неизвестные размеры или даже быть сигналами переменного размера?

Мне нужно написать S-функцию MATLAB уровня 2, где входные и/или выходные размеры неизвестны и могут также измениться во время моделирования.

В частности, я хотел бы реализовать два следующих сценария:

A) Вход: одномерный массив неизвестного фиксированного размера. Два выхода: отсортированный массив и сумма всех элементов.

Б) То же, что и А), но размер массива может меняться во время моделирования.

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Ответ эксперта

Кшитий Сингх ответил. 2021–10–22 08:38:41

A)

В функции настройки вашей S-функции MATLAB вам необходимо настроить свойства порта, которые будут унаследованы или динамически:

›› block.SetPreCompInpPortInfoToDynamic; ›› block.SetPreCompOutPortInfoToDynamic;

Затем вы можете переопределить единственные известные вам свойства, например:

›› block.InputPort(1).DatatypeID = 0; ›› block.InputPort(1).Complexity = ‘Real’; ›› block.InputPort(1).DirectFeedthrough = true;

›› block.OutputPort(1).DatatypeID = 0; ›› block.OutputPort(1).Complexity = 'Real'; ›› block.OutputPort(2).Dimensions = 1;›› block.OutputPort(2). DatatypeID = 0;›› block.OutputPort(2).Complexity = 'Real';

Обратите внимание, что поле «Размеры» не было установлено для InputPort (1) и OutputPort (1).

B)

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ