Создайте объект строения замены функций
создает объект строения замены функций для использования во время генерации кода или преобразования с фиксированной точкой. Объект строения задает, как создать приближение интерполяционной таблицы для MATLAB® функция, заданная q
= coder.approximation(function_name
)function_name
. Чтобы связать это приближение с coder.FixptConfig
объект для использования сcodegen
function, использовать coder.FixptConfig
объект строения addApproximation
способ.
Используйте этот синтаксис только для функций, которые coder.approximation
может автоматически заменить. Эти функции перечислены в function_name
описание аргумента.
log
Функция с интерполяционной таблицей по умолчаниюСоздайте объект строения замены функций с помощью настроек по умолчанию. Получившаяся интерполяционная таблица в сгенерированном коде использует 1000 точек.
logAppx = coder.approximation('log');
log
Функция с равномерной интерполяционной таблицейСоздайте объект строения замены функций. Укажите вход области значений и префикс для добавления к имени функции замены. Получившаяся интерполяционная таблица в сгенерированном коде использует 1000 точек.
logAppx = coder.approximation('Function','log','InputRange',[0.1,1000],... 'FunctionNamePrefix','log_replace_');
log
Функция с оптимизированной интерполяционной таблицейСоздайте объект строения замены функций с помощью 'OptimizeLUTSize'
опция, чтобы задать для замены log
функция с оптимизированной интерполяционной таблицей. Получившаяся интерполяционная таблица в сгенерированном коде использует меньше, чем число точек по умолчанию.
logAppx = coder.approximation('Function','log','OptimizeLUTSize', true,... 'InputRange',[0.1,1000],'InterpolationDegree',1,'ErrorThreshold',1e-3,... 'FunctionNamePrefix','log_optim_','OptimizeIterations',25);
Создайте объект строения замены функций, который задает замену пользовательской функции, saturateExp
, с оптимизированной интерполяционной таблицей.
Создайте пользовательскую функцию, saturateExp
.
saturateExp = @(x) 1/(1+exp(-x));
Создайте объект строения замены функций, который задает замену saturateExp
функция с оптимизированной интерполяционной таблицей. Потому что saturateExp
функция не указана в качестве функции, для которой coder.approximation
может сгенерировать приближение автоматически, необходимо задать CandidateFunction
свойство.
saturateExp = @(x) 1/(1+exp(-x)); custAppx = coder.approximation('Function','saturateExp',... 'CandidateFunction', saturateExp,... 'NumberOfPoints',50,'InputRange',[0,10]);
function_name
- Имя функции'acos'
| 'acosd'
| 'acosh'
| 'acoth'
| 'asin'
| 'asind'
| 'asinh'
| 'atan'
| 'atand'
| 'atanh'
| 'cos'
| 'cosd'
| 'cosh'
| 'erf '
| 'erfc'
| 'exp'
| 'log'
| 'normcdf'
| 'reallog'
| 'realsqrt'
| 'reciprocal'
| 'rsqrt'
| 'sin'
| 'sinc'
| 'sind'
| 'sinh'
| 'sqrt'
| 'tan'
| 'tand'
Имя заменяемой функции, заданное как строка. Функция должна быть одной из перечисленных функций.
Пример: 'sqrt'
Типы данных: char
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Function', 'log'
'Architecture'
- Архитектура приближения интерполяционной таблицы'LookupTable'
(по умолчанию) | 'Flat'
Архитектура приближения интерполяционной таблицы, заданная как разделенная разделенными запятой парами, состоящая из 'Architecture'
и строку. Используйте этот аргумент, когда хотите задать архитектуру для интерполяционной таблицы. The Flat
архитектура не использует интерполяцию.
Типы данных: char
'CandidateFunction'
- указатель на функцию замены;Указатель на функцию замены, заданный как разделенная разделенными запятой парами, состоящая из 'CandidateFunction'
и указатель на функцию или строка, ссылающаяся на указатель на функцию. Используйте этот аргумент, когда функция, которую вы хотите заменить, не указана в function_name
. Задайте указатель на функцию или строку, ссылающуюся на указатель на функцию функции, которую вы хотите заменить. Вы можете задать функцию в файле или как анонимную функцию.
Если вы не задаете функцию-кандидата, то функция, которую вы выбрали для замены, используя Function
свойство устанавливается как CandidateFunction
.
Пример: 'CandidateFunction', @(x) (1./(1+x))
Типы данных: function_handle
| char
'ErrorThreshold'
- Пороговое значение ошибки для вычисления оптимального размера интерполяционной таблицыПорог ошибок, используемое для вычисления оптимального размера интерполяционной таблицы, заданное как разделенная разделенными запятой парами, состоящая из 'ErrorThreshold'
и неотрицательный скаляр. Если 'OptimizeLUTSize'
является true
, этот аргумент необходим.
'Function'
- Имя функции для замены приближением интерполяционной таблицыfunction_name
Имя функции для замены приближением интерполяционной таблицы, заданное как разделенная разделенными запятой парами, состоящая из 'Function'
и строку. Функция должна быть непрерывной и без гражданства. Если вы задаете одну из функций, перечисленных в function_name
процесс преобразования автоматически обеспечивает функцию замены. В противном случае необходимо также задать 'CandidateFunction'
аргумент для функции, которую вы хотите заменить.
Пример: 'Function'
, 'log'
Пример: 'Function'
, 'my_log'
, 'CandidateFunction'
, @my_log
Типы данных: char
'FunctionNamePrefix'
- Префикс для сгенерированных имен функции с фиксированной точкойПрефикс для сгенерированных имен функции с фиксированной точкой, заданный как разделенная разделенными запятой парами, состоящая из 'FunctionNamePrefix'
и строку. Имя сгенерированной функции состоит из этого префикса, за которым следует исходное имя функции MATLAB.
Пример: «log_replace_»
'InputRange'
- Диапазон, в котором можно заменить функцию[ ]
(по умолчанию) | вектор-строку 2x1 | 2xN матрицу Диапазон, в котором можно заменить функцию, заданный как разделенная разделенными запятой парами, состоящая из 'InputRange'
и вектор-строка 2 на 1 или матрица- N 2 на байт.
Пример: [-1 1]
'InterpolationDegree'
- Степень интерполяции1
(по умолчанию) | 0
| 2
| 3
Степень интерполяции, заданная как разделенная разделенными запятой парами, состоящая из 'InterpolationDegree'
и 1
(линейный), 0
(нет), 2
(квадратичный), или 3
(кубический).
'NumberOfPoints'
- Число точек в интерполяционной таблице1000
(по умолчанию) | положительное целое числоЧисло точек в интерполяционной таблице, заданное как разделенная разделенными запятой парами, состоящая из 'NumberOfPoints'
и положительное целое число.
'OptimizeIterations'
- Количество итерацийКоличество итераций, которые должны выполняться при оптимизации размера интерполяционной таблицы, заданное как разделенная разделенными запятой парами, состоящая из 'OptimizeIterations'
и положительное целое число.
'OptimizeLUTSize'
- Оптимизируйте размер интерполяционной таблицыfalse
(по умолчанию) | true
Оптимизируйте размер интерполяционной таблицы, заданный как разделенная разделенными запятой парами, состоящая из 'OptimizeLUTSize'
и логическое значение. Установка значения свойства true
генерирует оптимальную по площади интерполяционную таблицу, то есть интерполяционную таблицу с минимально возможного числа точек. Эта интерполяционная таблица оптимизирована для размера, но может быть неэффективной.
'PipelinedArchitecture'
- Опция включения конвейеризацииfalse
(по умолчанию) | true
Опция включения конвейеризации, заданная как разделенная разделенными запятой парами, состоящая из 'PipelinedArchitecture'
и логическое значение.
q
- Объект строения замещения функций, возвращенный как coder.mathfcngenerator.LookupTable
или coder.mathfcngenerator.Flat
объект строенияcoder.mathfcngenerator.LookupTable
объект строения | coder.mathfcngenerator.Flat
объект строенияСтроение замены функций. Используйте coder.FixptConfig
объект строения addApproximation
метод для связи этого объекта строения с coder.FixptConfig
объект. Затем используйте codegen
функциональные -float2fixed
опция с coder.FixptConfig
для преобразования кода MATLAB с плавающей точкой в код с фиксированной точкой.
Свойство | Значение по умолчанию |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.