Ускорите код с фиксированной точкой и преобразуйте код 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
.
Примечание
Если файл верхнего уровня находится в пути, содержащем символы Юникода, генерация кода может оказаться невозможной для поиска файла.
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.config
| coder.Constant
| coder.EnumType
| coder.FiType
| coder.FixPtConfig
| coder.mexconfig
| coder.mexconfig
| coder.newtype
| coder.PrimitiveType
| coder.resize
| coder.StructType
| coder.Type
| coder.typeof