Main Content

coder.ignoreSize

定数サイズの式を対象とした関数の特殊化がコード ジェネレーターにより作成されるのを回避する

R2019b 以降

説明

coder.ignoreSize(expression) は、コード ジェネレーターが式の定数サイズを使用して関数の特殊化を作成してはならないことを宣言します。

すべて折りたたむ

MATLAB® コードが関数を複数回呼び出し、異なるサイズの入力を渡す場合、コード ジェネレーターは各サイズの関数の特殊化を作成できます。この問題を回避するには、coder.ignoreSize を関数入力に使用します。たとえば、次のコードは coder.ignoreSize を使用して、関数 indexOf の複数のコピーが作成されることを回避します。

function [out1, out2] = test1(in)
  a = 1:10;
  b = 2:40;
  % Without coder.ignoreSize duplicate functions are generated
  out1 = indexOf(coder.ignoreSize(a), in);
  out2 = indexOf(coder.ignoreSize(b), in);
end

function index = indexOf(array, value)
  coder.inline('never');
  for i = 1:numel(array)
      if array(i) == value
          index = i;
          return
      end
  end
  index = -1;
  return
end

コードを生成するには、次を入力します。

codegen test1 -config:lib -report -args {1}

入力引数

すべて折りたたむ

例: foo(coder.ignoreSize(1:10))

詳細

すべて折りたたむ

関数の特殊化

入力タイプ、サイズ、実数/複素数または値が関数の特定の呼び出し用にカスタマイズされる関数のバージョン。

関数の特殊化により効率的な C コードが生成されますが、コードが重複します。コード生成レポートにはコード ジェネレーターが作成するすべての MATLAB 関数の特殊化が表示されます。ただし、特殊化は後で変換または最適化されるため、生成した C/C++ コードには表示されない場合があります。

ヒント

  • 式を変数に代入し、coder.varsize を使用してその変数を可変サイズとして宣言する場合、この宣言は式に coder.ignoreSize を使用するのと同一の効果をもちます。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2019b で導入