【发布时间】: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