5

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

  function foo = subsubfunction(x,y)            
      [B,A]=butter(1,x/y);

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

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

4

1 回答 1

2

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

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

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

于 2014-01-14T14:36:30.557 回答