Как я могу создать постоянную переменную в MATLAB (и ее результаты сгенерированный код C), чтобы я мог использовать ее позже в своем коде, чтобы указать размер переменных.
Я хочу иметь массив, размер которого не закодирован через число по всему коду.Я хочу указать размер в начале кода, например, как мы делаем в коде C, используя одно из следующих значений:
const int arraySize=5
#define arraysize 5
Позже: int array[arraySize];
Когда янапишите следующее в MATLAB, кодер просто заменяет 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);
Это может быть связано с постоянным свертыванием , которое я не могу отключить!
Этот размер массива может повторяться для разных функций и кода много раз, поэтому global , вероятно, может быть связано с этим