【问题标题】:Create constant for specifying array size in MATLAB Coder在 MATLAB Coder 中创建用于指定数组大小的常量
【发布时间】:2019-03-16 23:03:28
【问题描述】:

如何在 MATLAB 中创建一个常量变量(及其生成的 C 代码),以便稍后在我的代码中使用它来指定变量的大小。

我想要一个数组,其大小不是通过数字硬编码代码。 我想在代码开头指定大小,就像我们在 C 代码中使用以下方法之一一样:

const int arraySize=5

#define arraysize 5

稍后:int array[arraySize];


当我在 MATLAB 中编写以下代码时,Coder 只是将 arraySize 替换为实际数字 5:

arraySize=int8(5);
array=zeros(1,arraySize); % zeros is just used for specifying size 

生成的代码:

void coder(double A[5])
{
  memset(&A[0], 0, sizeof(double) << 16);
}

我尝试使用以下方法,但它不允许我在 MATLAB 计算中使用 arraySize

arraySize=coder.opaque('const int16','5');
A=zeros(1,arraySize);

这可能与我无法禁用的常量折叠有关!


这个数组大小可能会在不同的函数和代码中重复很多次,所以global可能和这个有关

【问题讨论】:

    标签: matlab constants matlab-coder


    【解决方案1】:

    遗憾的是,从 MATLAB R2019a 开始,MATLAB Coder 不支持在其他变量的大小中按名称(而不是值)显示常量变量。我们已在内部记录您的请求,以便我们考虑在未来解除该限制。

    【讨论】:

      猜你喜欢
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多