Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Constants and Matlab Coder

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.

like image 540
Michael Ward Avatar asked Nov 04 '22 04:11

Michael Ward


1 Answers

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.

like image 109
Lokesh A. R. Avatar answered Nov 09 '22 07:11

Lokesh A. R.