exponenta event banner

Задать верхние границы для массивов переменного размера

Укажите верхние границы массива, если:

  • Динамическое выделение памяти отключено.

    Если динамическое выделение памяти отключено, необходимо указать верхние границы для всех массивов.

  • Генератор кода не должен использовать динамическое выделение памяти для массива.

    Укажите верхние границы, которые приводят к размеру массива (в байтах), который меньше порога динамического выделения памяти.

Укажите верхние границы для входов и выходов функционального блока MATLAB

См. раздел Объявление входов и выходов переменного размера.

Задать верхние границы для локальных переменных

При использовании статического распределения генератор кода использует сложный анализ для вычисления верхних границ локальных данных. Однако если при анализе не удается обнаружить верхнюю границу или вычисляется верхняя граница, которая является недостаточно точной для приложения, необходимо явно указать верхние границы для локальных переменных.

Ограничение значения переменных, задающих размеры массивов переменного размера

Чтобы ограничить значение переменных, задающих размеры массивов переменного размера, используйте assert функция с реляционными операторами. Например:

function y = dim_need_bound(n) %#codegen
assert (n <= 5);
L= ones(n,n);
M = zeros(n,n);
M = [L; M];
y = M;

Это assert оператор ограничивает ввод n до максимального размера 5. L - переменный размер с верхними границами 5 в каждом измерении. M переменный размер с верхней границей 10 в первом измерении и 5 во втором измерении.

Укажите верхние границы для всех экземпляров локальной переменной

Чтобы задать верхние границы для всех экземпляров локальной переменной в функции, используйте coder.varsize функция. Например:

function Y = example_bounds1(u) %#codegen
Y = [1 2 3 4 5];
coder.varsize('Y',[1 10]);
if (u > 0)
    Y = [Y Y+u];
else
    Y = [Y Y*u];
end

Второй аргумент coder.varsize указывает верхнюю границу для каждого экземпляра переменной, указанной в первом аргументе. В этом примере аргумент [1 10] указывает, что для каждого экземпляра Y:

  • Первый размер фиксируется размером 1.

  • Второй размер может вырасти до верхней границы 10.

См. также

Связанные темы