最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

coder.nullcopy

コード生成での初期化されていない変数の宣言

説明

X = coder.nullcopy(A) は、A の型、サイズおよび実数/複素数を X にコピーしますが、要素の値はコピーしません。この関数は、メモリの初期化時にオーバーヘッドを発生させることなく、X のメモリを事前に割り当てます。コード生成では、関数 coder.nullcopy は初期化されていない変数を宣言します。MATLAB® で、coder.nullcopy は X が A と等しくなるような入力を返します。

X が可変サイズの配列を含む構造体の場合は、各配列のサイズを割り当てなければなりません。coder.nullcopy は配列、または引数から結果までの入れ子配列のサイズをコピーすることはありません。

メモ

X を関数やプログラムで使用する前に、X 内のデータが完全に初期化されていることを確認します。coder.nullcopy を通じて、変数のすべての要素を割り当てることなく変数を宣言すると、プログラムの動作が非確定的なものになります。詳細については、初期化されていない変数の定義による冗長コピーの除去方法を参照してください。

すべて折りたたむ

不要な初期化を実行せずに、変数 X を実数で double の 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
複素数のサポート: あり

制限

スパース行列、構造体、cell 配列、またはスパース行列を含むクラスで coder.nullcopy を使用することはできません。

R2011a で導入