Исходный алгоритм | Новый алгоритм | |
---|---|---|
Функция: function y = mysum(x,T) %#codegen y = zeros(size(x), 'like', T.y); for n = 1:length(x) y = y + x(n); end end | Проблема: y использует Фиксация: Перепишите функцию, чтобы использовать преобразованное в нижний индекс присвоение в цикле for. Путем перезаписи y = y + x (n) как y (:) = y + x (n), значение справа присвоено в типу данных y. Это присвоение сохраняет |
Функция: 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 T = mytypes(dt) switch(dt) case 'fixed' F = fimath('RoundingMethod', 'Floor') T.x = fi([],1,16,11, F); T.y = fi([],1,16,6, F); end end |
Таблица типов: function T = mytypes(dt) switch(dt) case 'fixed' F = fimath('RoundingMethod', 'Floor') T.x = fi([],1,16,11, F); T.y = fi([],1,16,6, F); end end |