Ускорьте фиксированную точку и преобразуйте код MATLAB с плавающей точкой в фиксированную точку код MATLAB
fiaccel -
options
fcn
fiaccel -float2fixed fcn
fiaccel -
переводит файл MATLAB® options
fcn
fcn
.m
к MEX-функции, которая ускоряет фиксированную точку. Чтобы использовать fiaccel
, ваш код должен удовлетворить одно из этих требований:
Функция верхнего уровня не имеет никаких вводов или выводов, и код использует fi
Функция верхнего уровня имеет вывод или непостоянный вход, и по крайней мере одним выводом или входом является fi
.
Функция верхнего уровня имеет по крайней мере один ввод или вывод, содержащий встроенный целочисленный класс (int8
, uint8
, int16
, uint16
, int32
, uint32
, int64
или uint64
), и код использует fi
.
Если ваш файл верхнего уровня находится на пути, который содержит символы Unicode, генерация кода не может смочь найти файл.
fiaccel -float2fixed
преобразовывает функцию MATLAB с плавающей точкой, fcn
fcn
к фиксированной точке код MATLAB.
|
Функция MATLAB, от которой можно сгенерировать MEX-функцию. |
|
Выбор параметров компилятора.
|
Создайте тестовый файл и вычислите скользящее среднее значение. Затем используйте fiaccel
, чтобы ускорить код и выдержать сравнение.
function avg = test_moving_average(x) %#codegen if nargin < 1, x = fi(rand(100,1),1,16,15); end z = fi(zeros(10,1),1,16,15); avg = x; for k = 1:length(x) [avg(k),z] = moving_average(x(k),z); end function [avg,z] = moving_average(x,z) %#codegen if nargin < 2, z = fi(zeros(10,1),1,16,15); end z(2:end) = z(1:end-1); % Update buffer z(1) = x; % Add new value avg = mean(z); % Compute moving average % Use fiaccel to create a MEX function and % accelerate the code x = fi(rand(100,1),1,16,15); fiaccel test_moving_average -args {x} -report % Compare the non-accelerated and accelerated code. x = fi(rand(100,1),1,16,15); % Non-compiled version tic,avg = test_moving_average(x);toc % Compiled version tic,avg = test_moving_average_mex(x);toc
Создайте объект coder.FixptConfig
, fixptcfg
, с настройками по умолчанию.
fixptcfg = coder.config('fixpt');
Определите имя испытательного стенда. В этом примере именем функции испытательного стенда является dti_test
.
fixptcfg.TestBenchName = 'dti_test';
Преобразуйте функцию MATLAB с плавающей точкой в фиксированную точку код MATLAB. В этом примере именем функции MATLAB является dti
.
fiaccel -float2fixed fixptcfg dti
coder.ArrayType
| coder.Constant
| coder.EnumType
| coder.FiType
| coder.FixptConfig
| coder.MexConfig
| coder.PrimitiveType
| coder.StructType
| coder.Type
| coder.config
| coder.mexconfig
| coder.newtype
| coder.resize
| coder.typeof