Можно найти примеры с помощью этих функций в
и matlabroot
/toolbox/simulink/blocks/tlc_c
. Соответствующий исходный код S-функции MEX расположен в matlabroot
/toolbox/simulink/simdemos/simfeatures/tlc_c
или matlabroot
/simulink/src
MATLAB® S-функции файла и исполняемые файлы файла MEX (например, matlabroot
/toolbox/simulink/simdemos/simfeatures/src
) расположены в sfunction
MEX
или matlabroot
/toolbox/simulink/blocks
. Нажатие на одни из предыдущих имен папок превращается в ту папку в MATLAB и показывает содержание папки в Браузере текущей папки MATLAB.matlabroot
/toolbox/simulink/simdemos/simfeatures
Несколько функций берут подобные или идентичные аргументы. Чтобы упростить страницы с описанием, некоторые из этих аргументов документируются подробно здесь вместо на страницах с описанием.
Аргумент | Описание |
---|---|
Обращается к индексу порта ввода или вывода, запускающемуся в 0. Например, первый входной порт S-функции 0. | |
Переменная контроля за работой пользователей. Это - расширенная функция, которая заменяет | |
Контрольная переменная цикла. Это обычно генерируется | |
Индекс сигнала. Иногда называемый индексом элемента сигнала. Когда доступ к определенным элементам ввода или вывода сигнализирует непосредственно, вызов различных библиотечных подпрограмм должен иметь Большинство функций, которые берут
Используйте Функции, которые принимают эти три аргумента | |
| Индекс параметра. Иногда называемый индексом элемента параметра. Обработка этого параметра очень похожа на |
Индекс состояния. Иногда называемый индексом элемента вектора состояния. Это должно оценить до целого числа, где первый элемент запускается в |
Индекс сигнала (sigIdx
иногда записанный как idx
) может быть перегружен, когда передано большинству библиотечных функций. Предположим, что вы интересуетесь элементом 3 из сигнала и ucv=""
, lcv=""
. Следующая таблица показывает
Значения sigIdx
Является ли ссылаемый сигнал комплексным
Что функция, которая использует sigIdx
возвращается
Пример возвращенной переменной
Тип данных возвращенной переменной
Обратите внимание на то, что “контейнер” в следующей таблице относится к объекту, который инкапсулирует и действительные и мнимые части номера, например, creal_T
, заданный в tmwtypes.h
.
sigIdx | Комплекс | Функция возвращается | Пример | Данные Ввод |
---|---|---|---|---|
"re3" | Да | Действительная часть элемента 3 |
|
|
"im3" | Да | Мнимая часть элемента 3 |
|
|
"3"
| Да | Объедините контейнер элемента 3 |
|
|
3
| Да | Объедините контейнер элемента 3 |
|
|
"re3" | Нет | Элемент 3 |
|
|
"im3" | Нет |
| N/A | N/A |
"3"
| Нет | Элемент 3 |
|
|
3
| Нет | Элемент 3 |
|
|
Теперь предположите следующее:
Вы интересуетесь элементом 3 из сигнала.
(ucv = "i"
И lcv == ""
) ИЛИ (ucv = ""
AND lcv = "i"
).
Следующая таблица показывает значения idx
, является ли сигнал комплексным, и что функция, которая использует idx
возвращается.
sigIdx | Комплекс | Функция возвращается |
---|---|---|
"re3" | Да | Действительная часть элемента |
"im3" | Да | Мнимая часть элемента |
"3"
| Да | Объедините контейнер элемента |
3
| Да | Объедините контейнер элемента |
"re3" | Нет | Элемент |
"im3" | Нет |
|
"3"
| Нет | Элемент |
3
| Нет | Элемент |
Векторный индекс добавляется только для широких сигналов.
Если ucv
не пустая строка (""
), затем ucv
используется вместо sigIdx
в вышеупомянутых примерах и обоих lcv
и sigIdx
проигнорированы.
Если ucv
пусто, но lcv
не пусто, затем функция возвращает "&y%<portIdx>[%<lcv>]"
и sigIdx
проигнорирован.
Это принято, что ролик объявил и инициализировал переменные, к которым получают доступ в ролике. Переменные, к которым получают доступ в ролике, должны быть заданы с помощью rollVars
в качестве аргумента к %roll
директива.