Ускорьте фиксированную точку и преобразуйте код MATLAB с плавающей точкой в фиксированную точку код MATLAB
fiaccel -options fcn
fiaccel -float2fixed fcn
fiaccel - переводит MATLAB® файл options fcnfcn.m к MEX-функции, которая ускоряет фиксированную точку. Использовать fiaccel, ваш код должен удовлетворить одно из этих требований:
Функция верхнего уровня не имеет никаких вводов или выводов и использования кода fi
Функция верхнего уровня имеет выход или непостоянный вход, и по крайней мере один выход или вход являются a fi.
Функция верхнего уровня имеет по крайней мере один ввод или вывод, содержащий встроенный целочисленный класс (int8uint8int16uint16int32uint32int64, или uint64), и использование кода fi.
Примечание
Если ваш файл верхнего уровня находится на пути, который содержит символы Unicode, генерация кода не может смочь найти файл.
fiaccel -float2fixed преобразует функцию MATLAB с плавающей точкой, fcnfcn к фиксированной точке код 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.newtype | coder.PrimitiveType | coder.resize | coder.StructType | coder.Type | coder.typeof | coder.mexconfig | coder.mexconfig | coder.config | coder.FixPtConfig