fimathЕсли два fi объектные операнды имеют присоединенный fimath, fimaths должен быть равным.
Используйте removefimath функция, чтобы удалить fimath из одной из переменных во всего одном экземпляре. Путем удаления fimath, вы избегаете “несовпадающего fimath” ошибка, постоянно не изменяя fimath из переменной.
| Исходный алгоритм | Новый алгоритм |
|---|---|
Функция: function y = mysum(x,T) %#codegen y = zeros(size(x), 'like', T.y); for n = 1:length(x) y(:) = y + x(n); end end | Функция: function y = mysum(x,T) %#codegen y = zeros(size(x), 'like', T.y); for n = 1:length(x) y(:) = removefimath(y) + x(n); end end |
Таблица типов: function T = mytypes(dt) switch(dt) case 'fixed' T.x = fi([],1,16,0, 'RoundingMethod', 'Floor',... 'OverflowAction','Wrap'); T.y = fi([],1,16,0, 'RoundingMethod','Nearest'); end end | Таблица типов: function T = mytypes(dt) switch(dt) case 'fixed' T.x = fi([],1,16,0, 'RoundingMethod','Floor',... 'OverflowAction','Wrap'); T.y = fi([],1,16,0, 'RoundingMethod', 'Nearest'); end end |
removefimath | fimath | fi