coder.nullcopy

Declare uninitialized variables in code generation

Description

example

X = coder.nullcopy(A) copies type, size, and complexity of A to X, but does not copy element values. The function preallocates memory for X without incurring the overhead of initializing memory. In code generation, the coder.nullcopy function declares uninitialized variables. In MATLAB®, coder.nullcopy returns the input such that X is equal to A.

If X is a structure containing variable-sized arrays, then you must assign the size of each array. coder.nullcopy does not copy sizes of arrays or nested arrays from its argument to its result.

Note

Before you use X in a function or a program, ensure that the data in X is completely initialized . Declaring a variable through coder.nullcopy without assigning all the elements of the variable results in nondeterministic program behavior. For more information, see How to Eliminate Redundant Copies by Defining Uninitialized Variables.

Examples

collapse all

Declare variable X as a 1-by-5 vector of real doubles without performing an unnecessary initialization:

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

Using coder.nullcopy with zeros lets you specify the size of vector X without initializing each element to zero.

Input Arguments

collapse all

Variable to copy, specified as a scalar, vector, matrix, or multidimensional array.

Example: coder.nullcopy(A);

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
Complex Number Support: Yes

Limitations

You cannot use coder.nullcopy on sparse matrices, structures, cell arrays, or classes that contain sparse matrices.

Introduced in R2011a