Сгенерируйте оптимизированную интерполяционную таблицу как функцию MATLAB программно

В этом примере показано, как сгенерировать оптимизированную интерполяционную таблицу, когда MATLAB® функционирует, чтобы аппроксимировать гиперболическую касательную. Приближение интерполяционной таблицы функции MATLAB может затем использоваться, чтобы заменить гиперболическую функцию тангенса и сгенерировать код С.

Используйте FunctionApproximation.Options объект задать функцию MATLAB как тип решения. Используйте значения по умолчанию для ограничений размера слова и точности.

options = FunctionApproximation.Options();
options.ApproximateSolutionType = 'MATLAB';

Задайте функцию, чтобы аппроксимировать и входные диапазоны и типы данных в FunctionApproximation.Problem объект.

functionToApproximate = 'tanh';

problem = FunctionApproximation.Problem(functionToApproximate, 'Options', options);
problem.InputLowerBounds = 0;
problem.InputUpperBounds = 0.25;

Используйте solve метод, чтобы решить задачу оптимизации и создать решение для интерполяционной таблицы.

solution = solve(problem)
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) | 
|   0 |             64 |        1 |          2 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.962196e-03 |
|   1 |             64 |        1 |          2 |              16 |           16 |         EvenPow2Spacing |     7.812500e-03, 1.962196e-03 |

Best Solution
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) |
|   1 |             64 |        1 |          2 |              16 |           16 |         EvenPow2Spacing |     7.812500e-03, 1.962196e-03 |
solution = 
  1x1 FunctionApproximation.LUTSolution with properties:

          ID: 1
    Feasible: "true"

Чтобы получить сгенерированную интерполяционную таблицу как функцию MATLAB, используйте approximate метод. Используйте дополнительные аргументы name-value, чтобы задать имя и путь для функции интерполяционной таблицы.

filename = 'tanhApproximate';
filepath = cd;
approximate(solution,'Name',filename,'Path',filepath);

Если вам установили MATLAB Coder™, можно использовать codegen команда, чтобы сгенерировать код С от аппроксимированной функции интерполяционной таблицы.

inputArgs = linspace(1,10,10);
codegen tanhApproximate.m -args {inputArgs}
Code generation successful.

Смотрите также

| | |

Похожие темы