常数和 Matlab 编码器

Mic*_*ard 5 matlab constants matlab-coder

在 Matlab Coder 中运行时,某些函数要求输入为常数。我希望找到一种方法在输入之前将输入声明为常量作为有问题的情况的示例:

  function foo = subsubfunction(x,y)            
      [B,A]=butter(1,x/y);
Run Code Online (Sandbox Code Playgroud)

这将返回错误“所有输入必须是常量”

我如何将x 和 y声明为常量,以便 butter() 开心?我尝试了很多解决方案,但不幸的是没有找到任何真正令人满意的解决方案。如果coder.newtype('constant',x)可以使用命令行操作,它将简化一切。

Lok*_* R. 2

在函数中使用coder.const,以便函数butter知道您正在传递常量输入。该文档可在此处获取。

 function foo = subsubfunction(x,y)            
  [B,A]=coder.const(@butter,1,x/y);
Run Code Online (Sandbox Code Playgroud)

注意x/y:您无法更改生成代码中的值。您可以单独更改xy,但不能更改两个数字的比率。