coder.approximation

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

Синтаксис

q = coder.approximation(function_name)
q = coder.approximation('Function',function_name,Name,Value)

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

logAppx = coder.approximation('log');	

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

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 N матрицей.

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

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

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

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

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

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

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

свернуть все

Функциональный заменяющий объект настройки. Используйте метод объекта addApproximation настройки coder.FixptConfig, чтобы сопоставить этот объект настройки с объектом 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