coder.approximation

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

Описание

пример

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

Используйте этот синтаксис только в функциях что 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 имя аргумента и 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'журнал

Пример: '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' и логическое значение.

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

свернуть все

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