Resolve Error: Mismatched fimath
Issue
If two fi object operands have an attached
fimath, the fimaths must be equal.
Possible Solutions
Use the removefimath function to remove
the fimath of one of the variables in just one instance. By
removing the fimath, you avoid the “mismatched
fimath” error without permanently changing the
fimath of the variable.
| Original Algorithm | New Algorithm |
|---|---|
Function: 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: 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 |
Types Table: 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 | Types Table: 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 |
See Also
removefimath | fimath | fi