Reputation: 213
Some functions requires the input to be a constant, when run in Matlab Coder. I wish to find a way to declare the input as a constant before it is input as an example for the problematic situation:
function foo = subsubfunction(x,y)
[B,A]=butter(1,x/y);
This will return the error 'All inputs must be constant'
How do I declare x and y as constants so that butter() gets happy? I have tried many solutions and unfortunately not found anything really satisfying. If the command line operation coder.newtype('constant',x)
could be used it would simplify everything.
Upvotes: 5
Views: 2922
Reputation: 2366
Use coder.const
in the function, so that the function butter
knows you are passing a constant input. The documentation is available here.
function foo = subsubfunction(x,y)
[B,A]=coder.const(@butter,1,x/y);
Note: You cannot change the value of x/y
in the generated code. You could individually change x
and y
, but not the ratio of the two numbers.
Upvotes: 2