【问题标题】:Constants and Matlab Coder常量和 Matlab 编码器
【发布时间】:2012-03-17 01:50:30
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你的意思是常量还是一个值而不是向量/数组?你可以使用numel 函数...
  • 您好,感谢您的回答!但是你的意思是我可以使用numel 来解决这个问题?以哪种方式确保 matlab 输入是恒定的?

标签: matlab constants matlab-coder


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多