exponenta event banner

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