Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

coder.nullcopy

在代码生成中声明未初始化的变量

说明

示例

X = coder.nullcopy(A)A 的类型、大小和复/实性复制到 X,但不复制元素值。该函数为 X 预分配内存,而不会导致初始化内存的开销。在代码生成中,coder.nullcopy 函数声明未初始化的变量。在 MATLAB® 中,coder.nullcopy 返回输入,满足 X 等于 A。

如果 X 是包含可变大小数组的结构体或类,则您必须指定每个数组的大小。coder.nullcopy 不会将数组或嵌套数组的大小从其参数复制到结果中。

注意

在函数或程序中使用 X 之前,请确保 X 中的数据已完全初始化。通过 coder.nullcopy 声明变量而不指定变量的所有元素会导致不确定的程序行为。有关详细信息,请参阅 How to Eliminate Redundant Copies by Defining Uninitialized Variables

示例

全部折叠

将变量 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.nullcopyzeros 结合使用可让您指定向量 X 的大小,而无需将每个元素初始化为零。

输入参数

全部折叠

要复制的变量,指定为标量、向量、矩阵或多维数组。

示例: coder.nullcopy(A);

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | class
复数支持:

限制

  • 您无法对稀疏矩阵使用 coder.nullcopy

  • 您无法将 coder.nullcopy 用于支持重载括号或需要索引方法来访问其数据的类,如 table

在 R2011a 中推出