exponenta event banner

coder.approximation

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

Описание

пример

q = coder.approximation(function_name) создает объект конфигурации замены функции для использования при создании кода или преобразовании с фиксированной точкой. Объект конфигурации определяет способ создания аппроксимации таблицы подстановки для функции MATLAB ®, указанной вfunction_name. Чтобы связать это приближение с coder.FixptConfig для использования сcodegen , используйте 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' и струна. Этот аргумент используется для задания архитектуры таблицы подстановки. 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 или 2-by-N матрицу.

Пример: [-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