Я бы хотел сгенерировать некоторый код, используя встроенный кодер MATLAB, который выполняет операцию fft2
для типа данных uint8
. Конечное приложение будет работать с изображениями размером до 4096 на 4096, поэтому я не хочу использовать double
(~ 134 МБ двойных данных против ~ 16 МБ), необходимых для получения emlc
для компиляции код прямо сейчас.
Вот пример того, что я бегу:
%#eml
function bar = emlc_test(foo)
bar = fft2(foo);
end
с командой компилятора:
emlc -T rtw emlc_test -c -report -v -eg { zeros(32,32,'uint8') }
Это выдает ошибку:
??? Function 'fft' is not defined for values of class 'uint8'.
Та же команда кода / компиляции прекрасно работает при изменении 'uint8'
на 'double'
Но, глядя на сгенерированный код, кажется, что обработка должна быть способной выполняться в пространстве uint8. Не хватает ли флажка, чтобы моя операция fft2
могла работать с данными uint8
, а не с данными double
?