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
Поддержка комплексного числа: Да

Ограничения

Вы не можете использовать coder.nullcopy на разреженных матрицах, структурах, массивах ячеек или классах, которые содержат разреженные матрицы.

Введенный в R2011a