coder.approximation

Создайте объект строения замены функций

Описание

пример

q = coder.approximation(function_name) создает объект строения замены функций для использования во время генерации кода или преобразования с фиксированной точкой. Объект строения задает, как создать приближение интерполяционной таблицы для MATLAB® функция, заданная function_name. Чтобы связать это приближение с coder.FixptConfig объект для использования сcodegen function, использовать coder.FixptConfig объект строения addApproximation способ.

Используйте этот синтаксис только для функций, которые coder.approximation может автоматически заменить. Эти функции перечислены в function_name описание аргумента.

пример

q = coder.approximation('Function',function_name,Name,Value) создает объект строения замены функций с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение".

Примеры

свернуть все

Создайте объект строения замены функций с помощью настроек по умолчанию. Получившаяся интерполяционная таблица в сгенерированном коде использует 1000 точек.

logAppx = coder.approximation('log');	

Создайте объект строения замены функций. Укажите вход области значений и префикс для добавления к имени функции замены. Получившаяся интерполяционная таблица в сгенерированном коде использует 1000 точек.

logAppx = coder.approximation('Function','log','InputRange',[0.1,1000],...
'FunctionNamePrefix','log_replace_');	

Создайте объект строения замены функций с помощью '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]); 

Входные параметры

свернуть все

Имя заменяемой функции, заданное как строка. Функция должна быть одной из перечисленных функций.

Пример: 'sqrt'

Типы данных: char

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Function', 'log'

Архитектура приближения интерполяционной таблицы, заданная как разделенная разделенными запятой парами, состоящая из 'Architecture' и строку. Используйте этот аргумент, когда хотите задать архитектуру для интерполяционной таблицы. The Flat архитектура не использует интерполяцию.

Типы данных: char

Указатель на функцию замены, заданный как разделенная разделенными запятой парами, состоящая из 'CandidateFunction' и указатель на функцию или строка, ссылающаяся на указатель на функцию. Используйте этот аргумент, когда функция, которую вы хотите заменить, не указана в function_name. Задайте указатель на функцию или строку, ссылающуюся на указатель на функцию функции, которую вы хотите заменить. Вы можете задать функцию в файле или как анонимную функцию.

Если вы не задаете функцию-кандидата, то функция, которую вы выбрали для замены, используя Function свойство устанавливается как CandidateFunction.

Пример: 'CandidateFunction', @(x) (1./(1+x))

Типы данных: function_handle | char

Порог ошибок, используемое для вычисления оптимального размера интерполяционной таблицы, заданное как разделенная разделенными запятой парами, состоящая из 'ErrorThreshold' и неотрицательный скаляр. Если 'OptimizeLUTSize' является true, этот аргумент необходим.

Имя функции для замены приближением интерполяционной таблицы, заданное как разделенная разделенными запятой парами, состоящая из 'Function' и строку. Функция должна быть непрерывной и без гражданства. Если вы задаете одну из функций, перечисленных в function_nameпроцесс преобразования автоматически обеспечивает функцию замены. В противном случае необходимо также задать 'CandidateFunction' аргумент для функции, которую вы хотите заменить.

Пример: 'Function', 'log'

Пример: 'Function', 'my_log', 'CandidateFunction', @my_log

Типы данных: char

Префикс для сгенерированных имен функции с фиксированной точкой, заданный как разделенная разделенными запятой парами, состоящая из 'FunctionNamePrefix' и строку. Имя сгенерированной функции состоит из этого префикса, за которым следует исходное имя функции MATLAB.

Пример: «log_replace_»

Диапазон, в котором можно заменить функцию, заданный как разделенная разделенными запятой парами, состоящая из 'InputRange' и вектор-строка 2 на 1 или матрица- N 2 на байт.

Пример: [-1 1]

Степень интерполяции, заданная как разделенная разделенными запятой парами, состоящая из 'InterpolationDegree' и 1 (линейный), 0 (нет), 2 (квадратичный), или 3 (кубический).

Число точек в интерполяционной таблице, заданное как разделенная разделенными запятой парами, состоящая из 'NumberOfPoints' и положительное целое число.

Количество итераций, которые должны выполняться при оптимизации размера интерполяционной таблицы, заданное как разделенная разделенными запятой парами, состоящая из 'OptimizeIterations' и положительное целое число.

Оптимизируйте размер интерполяционной таблицы, заданный как разделенная разделенными запятой парами, состоящая из 'OptimizeLUTSize' и логическое значение. Установка значения свойства true генерирует оптимальную по площади интерполяционную таблицу, то есть интерполяционную таблицу с минимально возможного числа точек. Эта интерполяционная таблица оптимизирована для размера, но может быть неэффективной.

Опция включения конвейеризации, заданная как разделенная разделенными запятой парами, состоящая из 'PipelinedArchitecture' и логическое значение.

Выходные аргументы

свернуть все

Строение замены функций. Используйте coder.FixptConfig объект строения addApproximation метод для связи этого объекта строения с coder.FixptConfig объект. Затем используйте codegen функциональные -float2fixed опция с coder.FixptConfig для преобразования кода MATLAB с плавающей точкой в код с фиксированной точкой.

СвойствоЗначение по умолчанию

Auto-replace function

''

InputRange

[]

FunctionNamePrefix

'replacement_'

Architecture

LookupTable только для чтения

NumberOfPoints

1000

InterpolationDegree

1

ErrorThreshold

0.001

OptimizeLUTSize

false

OptimizeIterations

25

Введенный в R2014b