LibBlockMatrixParameter(param, rucv, rlcv, ridx, cucv, clcv, cidx)
возвращает параметр матрицы для блока, учитывая переменные контроля за работой пользователей строки и столбца (rucv
, cucv
), контрольные переменные цикла (rlcv
, clcv
), и индексы (ridx
, cidx
). Обычно блоки должны использовать LibBlockParameter
. Если у вас есть параметр матрицы, необходимо записать его как упорядоченный по столбцам вектор и получить доступ к нему через LibBlockParameter
.
Примечание
Прокрутка цикла в настоящее время не поддержана и сгенерирует ошибку, если требуется (т.е. если любой rlcv
или clcv
не равно ""
).
Аргументы индекса строки и столбца похожи на аргументы для LibBlockParameter
. Индекс столбца (cidx
) перегружается, чтобы обработать комплексные числа.
Смотрите LibBlockMatrixParameter
в paramlib.tlc
.
LibBlockMatrixParameterAddr(param, rucv, rlcv, ridx, cucv, clcv, cidx)
возвращает адрес параметра матрицы.
Примечание
LibBlockMatrixParameterAddr
возвращает адрес параметра матрицы. Прокрутка цикла не поддерживается (т.е. rlcv
и clcv
должна оба быть пустая строка).
Смотрите LibBlockMatrixParameterAddr
в paramlib.tlc
.
LibBlockMatrixParameterBaseAddr(param)
возвращает базовый адрес параметра матрицы.
Смотрите LibBlockMatrixParameterBaseAddr
в paramlib.tlc
.
LibBlockParamSetting(bType, psType)
возвращает строку заданной установки параметра для заданного типа блока. Если вы передадите пустой тип блока в эту функцию, установка параметра будет принята, чтобы быть в ParamSettings
запись блока. Если непустой тип блока будет передан в функцию, установки параметров будут приняты, чтобы быть в %<Btype>ParamSettings
запись того блока.
Смотрите LibBlockParamSetting
в paramlib.tlc
.
На основе ссылки параметра (param
), переменная контроля за работой пользователей (ucv
), контрольная переменная цикла (lcv
), индекс сигнала (sigIdx
), и состояние встраивания параметра, LibBlockParameter(param, ucv, lcv, sigIdx)
возвращает ссылку на параметры блоков. Возвращенным значением является допустимый rvalue
(значение правой стороны для выражения). Например,
Случай | Вызов функции | Может произвести |
---|---|---|
1 | LibBlockParameter(Gain, "i", lcv, sigIdx) | rtP.blockname[i] |
2 | LibBlockParameter(Gain, "i", lcv, sigIdx) | rtP.blockname |
3 | LibBlockParameter(Gain, "", lcv, sigIdx) | p_Gain[i] |
4 | LibBlockParameter(Gain, "", lcv, sigIdx) | p_Gain |
5 | LibBlockParameter(Gain, "", lcv, sigIdx) | 4.55
|
6 | LibBlockParameter(Gain, "", lcv, sigIdx) | rtP.blockname.re |
7 | LibBlockParameter(Gain, "", lcv, sigIdx) | rtP.blockname.im |
Проиллюстрировать основные работы LibBlockParameter
, примите некомплексный векторный сигнал где Gain[0]=4.55
:
LibBlockParameter(Gain, "", "i", 0)
Случай | Прокрутка | Встроенный параметр | Ввод | Результат | Требуемый в памяти |
---|---|---|---|---|---|
1 | 0 | Да | Скаляр | 4.55 | Нет |
2 | 1 | Да | Скаляр | 4.55 | Нет |
3 | 0 | Да | Вектор | 4.55 | Нет |
4 | 1 | Да | Вектор | p_Gain[i] | Да |
5 | 0 | Нет | Скаляр | rtP.blk.Gain | Нет |
6 | 0 | Нет | Скаляр | rtP.blk.Gain | Нет |
7 | 0 | Нет | Вектор | rtP.blk.prm[0] | Нет |
8 | 0 | Нет | Вектор | p.Gain[i] | Да |
Отметьте Случай 4. Даже при том, что Встроенный Параметр Да, параметр должен быть помещен в память (RAM), потому что к этому получают доступ в for
цикл.
Примечание
LibBlockParameter
также выражения поддержек, когда используется встроенными параметрами и настройкой параметра.
Например, если поле параметра имело выражение MATLAB® '2*a'
, LibBlockParameter
возвратил бы выражение C '(2*a)'
. Список функций поддержан LibBlockParameter
определяется функциями FcnConvertNodeToExpr
и FcnConvertIdToFcn
. Чтобы улучшить функциональность, увеличьтесь или обновить любую из этих функций.
Обратите внимание на то, что определенные типы выражений не поддерживаются, такие как x*y
где оба
x
и y
нескалярные выражения.
См. документацию о настраиваемых параметрах для получения дополнительной информации о точных функциях и синтаксисе, которые поддерживаются.
Не используйте LibBlockParameter
чтобы получить доступ к адресу параметра, или вы можете, может ошибочно сослаться на номер (т.е. &4.55
) когда параметр встраивается. Можно избежать этой ситуации при помощи LibBlockParameterAddr
.
Смотрите LibBlockParameter
в paramlib.tlc
.
LibBlockParameterAddr(param, ucv, lcv, idx)
возвращает адрес параметров блоков.
Используя LibBlockParameterAddr
получить доступ к параметру когда глобальный InlineParams
переменная равна 1, заставит переменную быть объявленной const
в RAM вместо того, чтобы быть встроенным.
Доступ к адресу выражения, когда выражение будет иметь несколько настраиваемых/прокрученных переменных в нем, приведет к ошибке.
Смотрите LibBlockParameterAddr
в paramlib.tlc
.
LibBlockParameterBaseAddr(param)
возвращает базовый адрес параметров блоков.
Используя LibBlockParameterBaseAddr
получить доступ к параметру когда глобальный InlineParams
переменная равна, каждый заставит переменную быть объявленной const
в RAM вместо того, чтобы быть встроенным.
Доступ к адресу выражения, когда выражение будет иметь несколько настраиваемых/прокрученных переменных в нем, приведет к ошибке.
Смотрите LibBlockParameterBaseAddr
в paramlib.tlc
.
LibBlockParameterDataTypeId(param)
возвращает числовой ID, соответствующий типу данных заданных параметров блоков.
Смотрите LibBlockParameterDataTypeId
в paramlib.tlc
.
LibBlockParameterDataTypeName(param, reim)
возвращает имя типа данных, соответствующего заданным параметрам блоков.
Смотрите LibBlockParameterDataTypeName
в paramlib.tlc
.
LibBlockParameterDimensions(param)
возвращает вектор-строку из длины N
(где N >= 1
) предоставление размерностей данных о параметре.
Например,
%assign dims = LibBlockParameterDimensions("paramName") %assign nDims = SIZE(dims,1) %foreach i=nDims /* Dimension %<i+1> = %<dims[i]> */ %endforeach
LibBlockParameterDimensions
отличается от LibBlockParameterSize
в этом это возвращает размерности данных о параметре до сворачивания Matrix
параметр к упорядоченному по столбцам вектору. Сворачивание происходит для параметров периода выполнения, которые задали их outputAsMatrix
поле как False
.
Смотрите LibBlockParameterDimensions
в paramlib.tlc
.
LibBlockParameterIsComplex(param)
возвращается 1, если заданные параметры блоков являются комплексными, 0 в противном случае.
Смотрите LibBlockParameterIsComplex
в paramlib.tlc
.
LibBlockParameterSize(param)
возвращает вектор из размера 2 в формате [nRows, nCols]
где nRows
количество строк и nCols
количество столбцов.
Смотрите LibBlockParameterSize
в paramlib.tlc
.
На основе ссылки параметров блоков (param
), LibBlockParameterString(param)
возвращает заданные параметры блоков, интерпретированные как строка, например, эта функция возвращается:
STRINGOF(param.Value[0])
если параметр является матрицей строки
STRINGOF(param.Value)
в противном случае
Примечание
Это - ошибка вызвать эту функцию параметром с матричным знаком больше чем с одной строкой.
Если вы только получаете доступ к значению параметров с помощью LibBlockParameterValue
или LibBlockParameterString
, рассмотрите преобразование параметра от Настраиваемого до Ненастраиваемого. Затем используйте ssWriteRTWParamSettings, чтобы записать значение параметра к
файл. Встраивание параметров уменьшает Использование оперативной памяти, потому что генератор кода использует численные значения параметров, вместо их символьных имен, в сгенерированном коде.model
.rtw
Смотрите LibBlockParameterString
в paramlib.tlc
.
На основе ссылки параметров блоков (param
) и элемент индекса массива (elidx
), LibBlockParameterValue(param, elIdx)
возвращает числовое значение параметра. Можно использовать LibBlockParameterWidth(param)
функция, чтобы получить ширину массива и затем использовать elidx
(допустимые значения 0
к width-1
) получить конкретный элемент массива.
Если вы только получаете доступ к значению параметров с помощью LibBlockParameterValue
или LibBlockParameterString
, рассмотрите преобразование параметра от Настраиваемого до Ненастраиваемого. Затем используйте ssWriteRTWParamSettings, чтобы записать значение параметра к
файл. Встраивание параметров уменьшает Использование оперативной памяти, потому что генератор кода использует численные значения параметров, вместо их символьных имен, в сгенерированном коде.model
.rtw
Если вы хотите сгенерировать код для различного интегратора в зависимости от параметра для блока, можно использовать следующее:
%assign mode = LibBlockParameterValue(Integrator, 0) %switch (mode) %case 1 %<CodeForIntegrator1> %break %case 2 %<CodeForIntegrator2> %break %default Error: Unrecognized integrator value. %break %endswitch
Смотрите LibBlockParameterValue
в paramlib.tlc
.
LibBlockParameterWidth(param)
возвращает число элементов (ширина) параметра.
Смотрите LibBlockParameterWidth
в
.paramlib.tlc