Как я могу создать постоянную переменную в 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);
}
Я попытался использовать следующее, но это не позволяет мне использовать arraySize
в вычислениях MATLAB:
arraySize=coder.opaque('const int16','5');
A=zeros(1,arraySize);
Это может быть связано с свертыванием констант, которое я не могу отключить!
Этот размер массива может многократно повторяться в различных функциях и коде, поэтому глобальный, вероятно, может быть связан с этим.