coder.nullcopy

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

Синтаксис

Описание

пример

X = coder.nullcopy(A) тип, размер и сложность A на X, но не копирует значения элемента. Функция предварительно выделяет память для X без возникновения накладных расходов на инициализацию памяти. В генерации кода coder.nullcopy функция объявляет неинициализированные переменные. В MATLAB®, coder.nullcopy возвращает вход таким образом, чтобы X равнялась A.

Если X является структурой или классом, содержащим массивы переменного размера, то необходимо назначить размер каждого массива. coder.nullcopy не копирует размеры массивов или вложенных массивов из его аргумента в результат.

Примечание

Прежде чем использовать X в функции или программе убедитесь, что данные в X полностью инициализирован. Объявление переменной через coder.nullcopy без назначения всех элементов переменной приводит к недетерминированному поведению программы. Для получения дополнительной информации см. раздел «Как исключить избыточные копии путем определения неинициализированных переменных».

Примеры

свернуть все

Объявить переменную X как вектор 1 на 5 вещественного двойника без выполнения ненужной инициализации:

function X = foo %#codegen

N = 5;
X = coder.nullcopy(zeros(1,N));
for i = 1:N
   if mod(i,2) == 0
      X(i) = i;
   else
      X(i) = 0;
   end
end

Использование coder.nullcopy с zeros позволяет задать размер вектора X без инициализации каждого элемента в нуль.

Входные параметры

свернуть все

Переменная для копирования, заданная в виде скаляра, вектора, матрицы или многомерного массива.

Пример: coder.nullcopy(A);

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | class
Поддержка комплексного числа: Да

Ограничения

  • Вы не можете использовать coder.nullcopy на разреженных матрицах.

  • Вы не можете использовать coder.nullcopy с классами, которые поддерживают перегруженные круглые скобки или требуют методов индексирования для доступа к их данным, таких как table.

Введенный в R2011a