Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

coder.CodeConfig

MATLAB コードから C/C++ コードを生成するための構成パラメーター

説明

coder.CodeConfig オブジェクトには、スタティック ライブラリ、ダイナミック リンク ライブラリ、実行可能プログラムを生成するために codegen が使用する構成パラメーターが含まれます。-config オプションを使用して、オブジェクトを関数 codegen に渡します。

作成

関数 coder.config を使用して coder.CodeConfig オブジェクトを作成します。

coder.CodeConfig オブジェクトの作成後、そのプロパティをコマンド ラインからプログラムで変更するか、構成パラメーター ダイアログ ボックスを使用して対話的に変更できます。コマンド ライン ワークフローで対話的に構成パラメーターを指定を参照してください。

プロパティ

すべて展開する

コンパイラの最適化またはツールチェーンのデバッグ設定。次の表のいずれかの値として指定します。

説明
'Faster Builds'

ビルドを最適化して、ビルド時間を短縮します。

'Faster Runs'

ビルドを最適化して実行可能ファイルの実行を迅速化します。

'Debug'

ビルドをデバッグ用に最適化します。

'Specify'

選択したツールチェーン内のツールの設定をカスタマイズするには CustomToolchainOptions プロパティを有効にします。Toolchain プロパティが 'Automatically locate an installed toolchain' に設定されると、BuildConfiguration'Specify' に設定することで、Toolchain が特定された位置にあるツールチェーンに変更されます。

Toolchain プロパティを使用可能な CMake ツールチェーン定義のいずれかに設定する場合は、このプロパティの使用できる値は 'Release''Debug''RelWithDebInfo''MinSizeRel'、および 'Specify' です。Configure CMake Build Processを参照してください。

動的な配列の最適化。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターで動的な配列のアクセスを最適化して、生成された C コードの実行時間を改善します。

false

コード ジェネレーターで動的な配列のアクセスを最適化しません。

動的な配列のアクセスの最適化を参照してください。

生成コードのコード形式オプション。次の表のいずれかの値として指定します。

説明
'Clang-format'

コード ジェネレーターは clang-format ファイルに従って生成コードを書式設定します。

'Auto'

内部のヒューリスティックな方法を使用して、生成コードを clang-format または MathWorks® の書式設定ツールのどちらで書式設定するかを判定します。

生成コードが clang-format で書式設定されるかどうかを確認するには、coder.config オブジェクトで Verbosity オプションを 'Verbose' に設定します。

'MathWorks'

コード ジェネレーターを MathWorks の書式設定ツールに戻します。

clang-format にはネイティブの CUDA® C++ サポートはありません。GPU Coder™ を使用して CUDA コードを生成する場合、書式設定ツールを 'Clang-format' に設定すると、コードのコンパイル時にビルドが失敗する可能性があります。

生成コードのコード置換ライブラリ。次の表のいずれかの値として指定します。

説明
'None'

この値が既定値です。

コード置換ライブラリを使用しません。

名前付きのコード置換ライブラリ

特定のプラットフォーム、コンパイラまたは標準のコード置換ライブラリへの呼び出しを生成します。名前付きライブラリのリストは以下に応じて変わります。

  • インストールされているサポート パッケージ。

  • システム ターゲット ファイル、言語、言語標準、デバイス ベンダー構成。

  • Embedded Coder® 製品を使用してコード置換ライブラリを作成して登録したかどうか。

互換性のあるライブラリは以下のパラメーターに依存します。

  • TargetLang

  • TargetLangStandard

  • ハードウェア実行構成オブジェクトの ProdHWDeviceType

Embedded Coder はより多くのライブラリを提供し、カスタム コード置換ライブラリの作成と使用を可能にします。

MATLAB® Coder™ は、選択されたコード置換ライブラリが必要とする最低限のヘッダー ファイル用 #include ステートメントを生成します。

このパラメーターを設定する前に、使用するライブラリがコンパイラでサポートされていることを確認してください。コンパイラでサポートされていないパラメーター値を選択した場合、コンパイラ エラーが発生することがあります。

メモ

MATLAB Coder ソフトウェアは TLC コールバックをサポートしません。

コンパイル時の再帰による関数の特殊化の最大数。正の整数として指定します。MATLAB コード内で再帰が許可されないようにするには、CompileTimeRecursionLimit を 0 に設定します。コンパイル時の再帰限界値の既定値は、このタイプの再帰を必要とするほとんどの再帰関数で十分に大きい値です。コンパイル時の再帰限界値が原因でコード生成に失敗する場合にコンパイル時の再帰が必要なときは、限界値を高くします。あるいは、コード ジェネレーターが実行時の再帰を使用するように、MATLAB コードを変更します。コンパイル時の再帰限界値に達するを参照してください。

定数畳み込みが実行する命令の最大数。状況によっては、コード生成で特定の命令を定数にする必要があります。これらの命令で定数畳み込みが行われる前に定数畳み込みが停止した場合、コードの生成は失敗します。この場合は、ConstantFoldingTimeout の値を増やします。

生成コードの MATLAB Coder の最適化を参照してください。

列挙型クラスまたは通常の C の列挙型を含む C++11 コードを生成するかどうか。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは、生成された C++11 コードの MATLAB 列挙に対応する列挙型クラスを生成します。列挙型のコードの生成を参照してください。

false

コード ジェネレーターは、生成された C++11 コードの MATLAB 列挙に対応する通常の C の列挙型を生成します。

依存関係:

  • TargetLang'C++' に設定すると、このパラメーターが有効になります。

CppInterfaceStyle'Methods' に設定して C++ コードを生成する際のインターフェイス クラスの名前。この場合、MATLAB エントリポイント関数の生成コードは、CppInterfaceClassName で指定された名前をもつ C++ クラスに含まれているメソッドで構成されています。CppInterfaceStyle'Functions' に設定した場合、このプロパティの効果はありません。

クラス インターフェイスをもつ C++ コードの生成を参照してください。

コードの生成元である MATLAB エントリポイント関数の生成された C++ コードに対するインターフェイスのスタイル。既定では、エントリポイント関数は C++ 関数になります。'Methods' を選択した場合、エントリポイント関数は C++ クラスのメソッドになります。プロパティ CppInterfaceClassName を使用してクラスの名前を指定します。

クラス インターフェイスをもつ C++ コードの生成を参照してください。

依存関係:

  • TargetLang'C++' に設定すると、このパラメーターが有効になります。

MATLAB コード内のパッケージに対応する C++ 名前空間を生成するかどうか。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは、MATLAB コード内のパッケージに対応する C++ 名前空間を生成します。生成された C++ コードの名前空間への整理を参照してください。

false

コード ジェネレーターは、MATLAB コード内のパッケージに対応する C++ 名前空間を生成しません。

依存関係:

  • TargetLang'C++' に設定すると、このパラメーターが有効になります。

データ型: logical

生成された C++ コードの名前空間。空でない文字ベクトルを指定しない限り、コード ジェネレーターは名前空間でコードを生成しません。

生成された C++ コードの名前空間への整理を参照してください。

依存関係:

  • TargetLang'C++' に設定すると、このパラメーターが有効になります。

MathWorks コードに対して生成された C++ コードの名前空間。このプロパティを空の文字ベクトルとして指定した場合、コード ジェネレーターはこのような名前空間を生成しません。

生成された C++ コードの名前空間への整理を参照してください。

依存関係:

  • TargetLang'C++' に設定すると、このパラメーターが有効になります。

データ型: char

MATLAB クラスに対応する C++ クラスと C スタイルの構造体のどちらを生成するか。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは MATLAB クラスに対応する C++ クラスを生成します。MATLAB クラスに対応する C++ クラスの生成を参照してください。

false

コード ジェネレーターは MATLAB クラスに対応する C スタイルの構造体を生成します。

GPU Coder を使用する場合、このパラメーターはコード ジェネレーターで常に無効になります。

依存関係:

  • TargetLang'C++' に設定すると、このパラメーターが有効になります。

データ型: logical

MATLAB コードの特定の低水準なベクトルおよび行列演算に対して生成されたコードの BLAS ライブラリ呼び出し用コールバック クラス。文字ベクトルとして指定します。

BLAS コールバック クラスを特定の低水準なベクトルと行列関数で指定する場合、コード ジェネレーターは BLAS ライブラリへの CBLAS C インターフェイスを使用して、BLAS 呼び出しを生成します。コールバック クラスは、CBLAS ヘッダー ファイルの名前、CBLAS データ型の名前、および BLAS ライブラリへのリンクに必要な情報を提供します。このパラメーターが空の場合、コード ジェネレーターは BLAS 呼び出しの代わりに行列関数のコードを生成します。

生成されたスタンドアロン コードでの BLAS 呼び出しを使用した行列演算の高速化を参照してください。

MATLAB コードで関数 FFT に対して生成されたコードの FFTW ライブラリ呼び出しのコールバック クラス。文字ベクトルとして指定します。

FFT 関数の実行速度を改善するために、コード ジェネレーターは、コールバック クラスで指定する FFTW ライブラリの呼び出しを生成します。このパラメーターが空である場合、コード ジェネレーターは FFTW ライブラリを呼び出す代わりに、FFT 関数に対して独自のアルゴリズムを使用します。

UseBuiltinFFTWLibrary プロパティと CustomFFTCallback プロパティを両方とも有効にすると、前者が優先されます。

生成されたスタンドアロン コードでの FFTW ライブラリ呼び出しを使用した高速フーリエ変換の高速化を参照してください。

MATLAB コードから生成された各 C/C++ ヘッダー ファイル (rtwtypes.h および rtwhalf.h を除く) の最上部近くに表示されるカスタム コード。文字ベクトルとして指定します。

生成コードのコンパイル時にインクルード パスに追加するインクルード フォルダー。インクルード フォルダーのリストを string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。

複数のフォルダーの名前。次の表のいずれかの値として指定します。

説明
string 配列

CustomInclude の string 配列。例: cfg.CustomInclude = ["C:\Project","C:\Custom Files"];

文字ベクトルの cell 配列

CustomInclude の文字ベクトルの cell 配列。例: cfg.CustomInclude = {'C:\Project','C:\Custom Files'};

文字ベクトル

CustomInclude でインクルード フォルダーを pathsep 文字で区切ります。例: cfg.CustomInclude = ['C:\Project' pathsep 'C:\Custom Files'];

メモ

コード構成オブジェクトでの文字ベクトルを使用した複数のエントリの指定は将来のリリースで削除される予定であり、使用すると警告が発生します。代わりに string 配列または文字ベクトルの cell 配列を使用してください。詳細については、互換性についての考慮事項を参照してください。

生成された初期化関数に含めるカスタム コード。文字ベクトルとして指定します。

MATLAB コードの特定の線形代数に対して生成されたコードの LAPACK ライブラリ呼び出しのコールバック クラス。文字ベクトルとして指定します。

LAPACK コールバック クラスを指定すると、特定の線形代数関数では、コード ジェネレーターが LAPACK ライブラリへの LAPACKE C インターフェイスを使用して LAPACK 呼び出しを生成します。このコールバック クラスは、LAPACKE ヘッダー ファイルの名前と LAPACK ライブラリへのリンクに必要な情報を提供します。このパラメーターが空の場合、コード ジェネレーターは LAPACK 呼び出しではなく線形代数関数のコードを生成します。

生成されたスタンドアロン コードでの LAPACK 呼び出しを使用した線形代数の高速化を参照してください。

生成コードにリンクするスタティック ライブラリ ファイル。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。

複数のスタティック ライブラリ ファイルの名前。次の表のいずれかの値として指定します。

説明
string 配列

CustomLibrary の string 配列。例: cfg.CustomLibrary = ["myLib1.lib","myLib2.lib"];

文字ベクトルの cell 配列

CustomLibrary の文字ベクトルの cell 配列。例: cfg.CustomLibrary = {'myLib1.lib','myLib2.lib'};

文字ベクトル

CustomLibrary でスタティック ライブラリ ファイルの名前を pathsep 文字で区切ります。例: cfg.CustomLibrary = ['myLib1.lib' pathsep 'myLib2.lib'];

メモ

コード構成オブジェクトでの文字ベクトルを使用した複数のエントリの指定は将来のリリースで削除される予定であり、使用すると警告が発生します。代わりに string 配列または文字ベクトルの cell 配列を使用してください。詳細については、互換性についての考慮事項を参照してください。

コンパイルして生成コードにリンクするソース ファイル。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。

ビルド プロセスは最初に現在のフォルダー内でソース ファイルを探してから、CustomInclude に指定したインクルード フォルダー内で探します。検索パス上の複数のフォルダーに同じ名前のソース ファイルがある場合、指定したファイルとは別のファイルがビルド プロセスで使用される可能性があります。

たとえば、foo.cpp をソース ファイルとして指定するとします。foo.cfoo.cpp の両方が検索パスにある場合、ビルド プロセスが foo.cfoo.cpp のどちらを使用するか断定できません。

複数のソース ファイルの名前。次の表のいずれかの値として指定します。

説明
string 配列

CustomSource の string 配列。例: cfg.CustomSource = ["mySrc1.c","mySrc2.c"];

文字ベクトルの cell 配列

CustomSource の文字ベクトルの cell 配列。例: cfg.CustomSource = {'mySrc1.c','mySrc2.c'};

文字ベクトル

CustomSource でソース ファイルの名前を pathsep 文字で区切ります。例: cfg.CustomSource = ['mySrc1.c' pathsep 'mySrc2.c'];

メモ

コード構成オブジェクトでの文字ベクトルを使用した複数のエントリの指定は将来のリリースで削除される予定であり、使用すると警告が発生します。代わりに string 配列または文字ベクトルの cell 配列を使用してください。詳細については、互換性についての考慮事項を参照してください。

生成された各 .c または .cpp ファイル (rtwhalf.c または rtwhalf.cpp を除く) の最上部付近、関数の外側にコードが表示されるよう指定します。文字ベクトルとしてコードを指定します。

C 静的関数の定義は指定しないでください。

生成された終了関数に表示されるコード。文字ベクトルとして指定します。

選択したツールチェーンのツールに対するカスタム設定。cell 配列として指定します。

依存関係:

  • Toolchain プロパティは、cell 配列に表示されるツールとオプションを決定する。

  • BuildConfiguration プロパティを Specify に設定すると、CustomToolchainOptions が有効化される。

最初に、現在の設定を取得します。次に例を示します。

cfg = coder.config('lib');
cfg.BuildConfiguration='Specify';
opt = cfg.CustomToolchainOptions

次に、opt の値を編集します。

これらの値はツールチェーン定義ファイルおよびサードパーティ コンパイラ オプションから派生します。カスタム ツールチェーンの登録を参照してください。

生成コードのデータ型置換。次の表のいずれかの値として指定します。

説明
'CBuiltIn'

この値が既定値です。

コード ジェネレーターは組み込みの C データ型を使用します。

'CoderTypeDefs'コード ジェネレーターは rtwtypes.h から事前定義されたデータ型を使用します。

深層学習ネットワークのコード生成の構成オブジェクト。次の表のいずれかのオブジェクトとして指定します。

オブジェクト必要説明
coder.MklDNNConfig

  • Deep Learning Toolbox™

  • MATLAB Coder Interface for Deep Learning サポート パッケージ

coder.MklDNNConfig オブジェクトには、Intel® MKL-DNN を使用した深層学習用の C++ コード生成に固有のパラメーターが含まれています。coder.MklDNNConfig オブジェクトを作成するには、coder.DeepLearningConfig を使用します。次に例を示します。

cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');

MKL-DNN を使用した、深層学習ネットワークのためのコード生成を参照してください。

coder.ARMNEONConfig

  • Deep Learning Toolbox

  • MATLAB Coder Interface for Deep Learning サポート パッケージ

coder.ARMNEONConfig オブジェクトには、ARM® Compute Library を使用した深層学習用の C++ コード生成に固有のパラメーターが含まれています。coder.ARMNEONConfig オブジェクトを作成するには、coder.DeepLearningConfig を使用します。次に例を示します。

cfg = coder.config('lib');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('arm-compute');

ARM Compute Library を使用した、深層学習ネットワークのためのコード生成を参照してください。

coder.CuDNNConfig (GPU Coder)

  • Deep Learning Toolbox

  • GPU Coder

  • GPU Coder Interface for Deep Learning サポート パッケージ

coder.CuDNNConfig オブジェクトには、cuDNN ライブラリを使用した深層学習用の CUDA コード生成に固有のパラメーターが含まれています。coder.CuDNNConfig オブジェクトを作成するには、coder.DeepLearningConfig を使用します。次に例を示します。

cfg = coder.gpuConfig('lib');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn');

cuDNN を使用した深層学習ネットワークのコード生成 (GPU Coder)を参照してください。

coder.TensorRTConfig (GPU Coder)

  • Deep Learning Toolbox

  • GPU Coder

  • GPU Coder Interface for Deep Learning サポート パッケージ

coder.TensorRTConfig オブジェクトには、TensorRT ライブラリを使用した深層学習用の CUDA コード生成に固有のパラメーターが含まれています。coder.TensorRTConfig オブジェクトを作成するには、coder.DeepLearningConfig を使用します。次に例を示します。

cfg = coder.gpuConfig('lib');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('tensorrt');

TensorRT を使用した深層学習ネットワークのコード生成 (GPU Coder)を参照してください。

依存関係: DeepLearningConfig を設定すると、codegenTargetLangC++ に設定されます。

オブジェクトの説明。文字ベクトルとして指定します。

動的メモリ割り当てモード。次の表のいずれかの値として指定します。

説明
'Threshold'

この値が既定値です。

コード ジェネレーターは、サイズ (バイト単位) が DynamicMemoryAllocationThreshold 以上である可変サイズ配列に対しては、ヒープ上でメモリを動的に割り当てます。

'AllVariableSizeArrays'コード ジェネレーターは、ヒープ上ですべての可変サイズ配列のメモリを動的に割り当てます。
'Off'

コード ジェネレーターは、スタック上で可変サイズ配列のメモリを静的に割り当てます。

制限のない可変サイズの配列では動的なメモリ割り当てが必要です。

依存関係:

  • EnableVariableSizing により、このパラメーターが有効になります。

  • この DynamicMemoryAllocation'Threshold' に設定すると、DynamicMemoryAllocationThreshold パラメーターが有効になります。

可変サイズ データのためのコード生成を参照してください。

メモ

DynamicMemoryAllocation 構成オプションは将来のリリースで削除される予定です。可変サイズの配列に対してメモリを動的に割り当てるには、EnableDynamicMemoryAllocation オプションを使用してください。動的メモリ割り当てしきい値を構成するには、DynamicMemoryAllocationThreshold オプションを使用します。

固定サイズの配列に対する動的メモリ割り当て。次の表のいずれかの値として指定します。

説明
true

コード ジェネレーターは、サイズ (バイト単位) が DynamicMemoryAllocationThreshold 以上である固定サイズ配列に対しては、ヒープ上でメモリを動的に割り当てます。

false

この値が既定値です。

コード ジェネレーターは、スタック上で固定サイズ配列のメモリを静的に割り当てます。

依存関係:

  • このオプションは、EnableDynamicMemoryAllocationtrue に設定すると有効になります。

固定サイズの配列に対する動的メモリ割り当ての制御を参照してください。

生成された C/C++ 関数のインターフェイスにおける動的に割り当てられた配列の実装。次の表のいずれかの値として指定します。

説明
'Auto'

これは既定値です。TargetLang パラメーターを 'C++' または 'C' に設定した場合、この値はそれに応じて同じオプションとして動作します。

'C'

生成されたコードは、C スタイルの emxArray データ構造体を使用して動的に割り当てられた配列を実装します。生成された関数インターフェイスでの C 配列の使用を参照してください。

'C++'

TargetLang パラメーターを 'C' に設定した場合は、この値は無効になります。

そうでない場合、生成されたコードは、coder::array クラス テンプレートを使用して動的に割り当てられた配列を実装します。生成された関数インターフェイスでの動的に割り当てられた C++ 配列の使用を参照してください。

GPU Coder を使用する場合、C スタイルの emxArray データ構造体がコード ジェネレーターで常に使用されます。

依存関係:

  • EnableVariableSizing により、このパラメーターが有効になります。

可変サイズの配列の動的なメモリ割り当てのサイズしきい値。正の整数として指定します。コード ジェネレーターでは、しきい値以上のサイズ (バイト) をもつ可変サイズの配列に動的メモリ割り当てを使用します。

依存関係:

  • このオプションは、EnableDynamicMemoryAllocationtrue に設定すると有効になります。

可変サイズ データのためのコード生成を参照してください。

自動的な外部関数呼び出し。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは、一部の一般的な可視化関数を外部関数として扱います。coder.extrinsic を使用してこれらの関数を外部関数として宣言する必要はありません。この機能を使用すると、コードがコード生成に適するようになるまでの時間が短縮されます。

false一般的な可視化関数を coder.extrinsic を使用して外部関数として宣言しない限り、コード ジェネレーターはこれらの可視化関数を外部関数として扱いません。

一部の一般的な可視化関数とは plotdispfigure です。生成コードでの MATLAB エンジンを使用した関数呼び出しの実行を参照してください。

for ループの自動並列化。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターは for ループを自動的に並列化しません。

true

コード ジェネレーターは生成コードで for ループを自動的に並列化します。自動並列化を使用すると、生成コードの実行速度を大幅に改善できます。生成コードでの for ループの自動並列化を参照してください。

GPU Coder を使用する場合、for ループの自動並列化はコード ジェネレーターで常に有効になります。

データ型: logical

for ループの自動並列化のレポート作成。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

EnableAutoParallelizationtrue に設定すると、コード ジェネレーターは、for ループの自動並列化についてコード生成レポートを作成します。

falseコード ジェネレーターは、for ループの自動並列化についてコード生成レポートを作成しません。

可変サイズの配列に対する動的メモリ割り当て。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは、サイズ (バイト単位) が DynamicMemoryAllocationThreshold 以上である可変サイズ配列に対しては、ヒープ上でメモリを動的に割り当てます。

falseコード ジェネレーターは、スタック上で可変サイズ配列のメモリを静的に割り当てます。

生成コードでの暗黙的な拡張機能。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

生成コードでの暗黙的な拡張がコード ジェネレーターで有効になります。暗黙的な拡張を適用するためにコード ジェネレーターで生成コードに変更が加えられます。基本的な演算で互換性のある配列サイズを参照してください。

false

生成コードは暗黙的な拡張のルールに従いません。

データ型: logical

memcpy 最適化。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

可能であれば、コード ジェネレーターは memcpy 最適化を使用します。連続する配列要素をコピーするコードを最適化するために、memcpy 最適化はこのコードを memcpy 呼び出しに置き換えます。コピーする要素数がコンパイル時にわかっている場合、コード ジェネレーターは MemcpyThreshold プロパティを使用して、最適化を使用するかどうかを判断します。memcpy 最適化を参照してください。

false

コード ジェネレーターは memcpy 最適化を使用しません。

GPU Coder を使用する場合、Memcpy 最適化はコード ジェネレーターで常に無効になります。

parfor ループの並列化。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

可能であれば、コード ジェネレーターは OpenMP ライブラリを使用して、並列実行されるループ反復を生成します。

false

コード ジェネレーターは parfor ループを for ループとして処理します。

parfor を参照してください。

OpenMP ライブラリの使用は Just-In-Time (JIT) コンパイルと互換性がありません。EnableJITEnableOpenMPtrue の場合、コード ジェネレーターは JIT コンパイルを使用し、parfor ループを for ループとして処理します。

GPU Coder を使用する場合、parfor ループはコード ジェネレーターで常に for ループとして処理されます。

実行時の再帰のサポート。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

生成されたコードで再帰関数が許可されます。

false

生成されたコードで再帰関数が許可されません。

MISRA™ などの一部のコーディング標準では、再帰は許可されません。MISRA C™ に準拠したコードを生成する可能性を高めるには、EnableRuntimeRecursionfalse に設定します。

MATLAB コードで実行時の再帰が必要な場合に EnableRuntimeRecursionfalse のとき、コード生成に失敗します。

再帰関数のコード生成を参照してください。

可変サイズ配列のサポート。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

可変サイズの配列がコード生成で許可されます。

false

可変サイズの配列がコード生成で許可されません。

依存関係:

  • Dynamic memory allocation を有効にします。

可変サイズの配列のコード生成を参照してください。

ファイルの分割モード。次の表のいずれかの値として指定します。

説明
'MapMFileToCFile'

この値が既定値です。

コード ジェネレーターは各 MATLAB 言語ファイルに対して個別の C/C++ ファイルを生成します。

'SingleFile'コード ジェネレーターは、MATLAB エントリポイント関数にマッピングされる C/C++ 関数に対して 1 つのファイルを生成します。コード ジェネレーターは、ユーティリティ関数に対して個別の C/C++ ファイルを生成します。

MATLAB Coder が生成コードを分割する方法を参照してください。

ソース コードのみの生成。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターは C/C++ ソース コードを生成し、オブジェクト コードをビルドします。

true

コード ジェネレーターは C/C++ ソース コードを生成しますが、make コマンドを呼び出したり、オブジェクト コードをビルドしたりしません。MATLAB コードの変更と C/C++ コードの生成を反復するときは、コードのみ生成すると時間を節約できます。

生成されたコード内のコメント。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは生成されたコードにコメントを配置します。

falseコード ジェネレーターは生成されたコードにコメントを配置しません。

C/C++ main ファイルの生成例。次の表のいずれかの値として指定します。

説明
'GenerateCodeOnly'

この値が既定値です。

コード ジェネレーターは C/C++ の main 関数の例を生成しますが、コンパイルしません。

'DoNotGenerate'

コード ジェネレーターは C/C++ の main 関数の例を生成しません。

'GenerateCodeAndCompile'

コード ジェネレーターは C/C++ の main 関数の例を生成し、コンパイルしてテスト実行可能ファイルを作成します。この実行可能ファイルは出力を返しません。

GenCodeOnly パラメーターが true である場合、コード ジェネレーターは C/C++ の main 関数をコンパイルしません。

main 関数の例は、生成された C/C++ コードを呼び出す C/C++ main 関数を作成するのに役立つテンプレートです。main 関数の例を使用した生成コードの組み込みを参照してください。

ビルド プロセス中の makefile の生成。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは、ビルド プロセス中に makefile を生成します。

falseコード ジェネレーターは、ビルド プロセス中に makefile を生成しません。コード生成後のコマンドで、コンパイルやリンクを含む、コード生成後処理の手順を指定します。ビルド プロセスのカスタマイズを参照してください。

非有限データのサポート ファイルの生成。以下の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは、生成されたコードが非有限データ (Inf および NaN) を使用している場合のみ、非有限データのサポート ファイルを生成します。

false

コード ジェネレーターは、非有限データ (Inf および NaN) のサポート ファイルを常に生成します。

依存関係:

  • SupportNonFinitetrue に設定すると、このパラメーターが有効になります。

コード生成レポート。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターは、エラーや警告メッセージが発生した場合のみ、または LaunchReporttrue に設定した場合にレポートを生成します。

trueコード ジェネレーターはコード生成レポートを生成します。

GPU Coder を使用して CUDA GPU コードを生成するための構成オブジェクト。GpuCodeConfig オブジェクトには、CUDA GPU コード生成に固有のパラメーターが含まれています。GpuCodeConfig オブジェクトを作成するには、coder.gpuConfig (GPU Coder) を使用します。次に例を示します。

cfg = coder.gpuConfig('lib');
cfg.GpuConfig

ans = 

  GpuCodeConfig with properties:

                    Enabled: 1
                 MallocMode: 'discrete'
           KernelNamePrefix: ''
               EnableCUBLAS: 1
             EnableCUSOLVER: 1
                EnableCUFFT: 1
               Benchmarking: 0
                  SafeBuild: 0
          ComputeCapability: '3.5'
    CustomComputeCapability: ''
              CompilerFlags: ''
        StackLimitPerThread: 1024
            MallocThreshold: 200
     MaximumBlocksPerKernel: 0
        EnableMemoryManager: 0
             BlockAlignment: 256
                   FreeMode: 'Never'
                MinPoolSize: 8
                MaxPoolSize: 2048
           SelectCudaDevice: -1

詳細については、コマンド ライン インターフェイスを使用したコード生成 (GPU Coder)を参照してください。

依存関係: GpuConfig が設定されている場合、codegencoder.CodeConfig のプロパティを次の表の値に変更します。

プロパティ
CppPreserveClassesfalse
DynamicMemoryAllocationInterface'C' (GpuCodeConfigMallocMode プロパティが 'unified' に設定されている場合)
EnableAutoParallelizationtrue
EnableMemcpyfalse
EnableOpenMPfalse
InstructionSetExtensions'None'
MultiInstanceCodefalse
TargetLang'C++'

ハードウェア ボードを指定するオブジェクト。coder.Hardware オブジェクトを作成するには、関数 coder.hardware を使用します。以下に例を示します。

cfg = coder.config('lib');
hw = coder.hardware('Raspberry Pi');
cfg.Hardware = hw;

coder.hardware を使用する前に、ハードウェアのサポート パッケージをインストールしなければなりません。

依存関係:

  • Hardware を設定すると、特定のハードウェア ボードに対するハードウェア実行オブジェクトと他のコンフィギュレーション パラメーターがカスタマイズされます。

  • DeepLearningConfigcoder.ARMNEONConfig オブジェクトに設定した場合に Hardware が空であると、codegenGenCodeOnly プロパティが true に設定されます。

メモ:

  • coder.CodeConfig オブジェクト cfg を MATLAB セッションで作成し、そのオブジェクトを別の MATLAB セッションで使用するとします。2 つ目のセッションの MATLAB ホスト コンピューターに cfg.Hardware プロパティで指定されたハードウェア ボードがインストールされていないと、このパラメーターは既定値に戻ります。既定値は [] です。アプリで [ハードウェア ボード] オプションを [MATLAB Host Computer] に設定すると、cfg.Hardware および cfg.HardwareImplementation.ProdHWDeviceType の既定値を使用することと同じになります。

C/C++ コード生成のハードウェア固有の構成パラメーターを指定するハードウェア実行オブジェクト。coder.config は、HardwareImplementation プロパティが MATLAB ホスト コンピューターの既定のパラメーター値をもつ coder.HardwareImplementation オブジェクトに設定された coder.CodeConfig オブジェクトを作成します。

複数のヘッダー ファイルが含まれていることに起因するコンパイル エラーを回避するために、コード ジェネレーターによって生成ヘッダー ファイル内に #ifndef または #pragma once のいずれかの構造が生成されます。同じプリプロセッサ マクロを使用する異なるファイルをプロジェクトで使用する場合、#pragma once 構造を使用してコードを生成します。#pragma once のコンパイル動作は標準化されていません。

次の表のいずれかの値として HeaderGuardStyle を指定します。

説明
UseIncludeGuard

コード ジェネレーターによって #ifndef スタイルの #include ガードが生成されます。

UsePragmaOnceコード ジェネレーターによって #pragma once スタイルの #include ガードが生成されます。

行優先のレイアウトによる効率性の潜在的な問題の表示。次の表のいずれかの値として指定します。

説明
true

コード生成レポートには、行優先のレイアウトによる効率性の潜在的な問題が表示されます (この値が既定値です)。

falseコード生成レポートには、配列レイアウトに関する問題は表示されません。

行優先のレイアウトのコード設計を参照してください。

memset を使用した float と double のゼロの代入。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

可能であれば、コード ジェネレーターは、連続する配列要素への浮動小数点ゼロの代入に対して memset 最適化を使用します。連続する配列要素を代入するには、memset 最適化では memset 呼び出しが使用されます。代入する要素数がコンパイル時にわかっている場合、コード ジェネレーターは MemcpyThreshold プロパティを使用して、最適化を使用するかどうかを判断します。memset の最適化を参照してください。

false

コード ジェネレーターは、連続する配列要素への float と double のゼロの代入に対して memset 最適化を使用しません。

MathWorks が別の MathWorks 関数を呼び出すすべての呼び出しサイトにおけるインライン化の動作。次の表のいずれかの値として指定します。

説明
'Speed'

この値が既定値です。

内部のヒューリスティックな方法を使用して、呼び出しサイトでインライン化を実行するかどうかを判定します。通常、この設定を使用すると高度に最適化されたコードが生成されます。

'Always'

呼び出しサイトでインライン化を常に実行します。

'Readability'

非常に小さい関数の呼び出しを除き、関数呼び出しのインライン化をほぼ実行しません。可能な限り、速度を大幅に低下させることなくコードのモジュール性を維持します。非常に読みやすいコードが生成されます。

'Never'

関数呼び出しのインライン化を実行しません。最大限の可読性が得られます。この設定では、生成コードのパフォーマンスが大幅に低下する可能性があります。

設定に 'Always' オプションまたは 'Never' オプションを選択しても、コード ジェネレーターがその指示に厳密に従わない場合があります。たとえば、競合がある場合、このオプションは、関数本体内に配置された coder.inline('always') 命令または coder.inline('never') 命令によってオーバーライドされます。詳細については、異なるインライン化制御間の相互作用を参照してください。

生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。

記述した関数が MathWorks 関数を呼び出すか、MathWorks 関数が記述した関数を呼び出すすべての呼び出しサイトにおけるインライン化の動作。次の表のいずれかの値として指定します。

説明
'Speed'

この値が既定値です。

内部のヒューリスティックな方法を使用して、呼び出しサイトでインライン化を実行するかどうかを判定します。通常、この設定を使用すると高度に最適化されたコードが生成されます。

'Always'

呼び出しサイトでインライン化を常に実行します。

'Readability'

非常に小さい関数の呼び出しを除き、関数呼び出しのインライン化をほぼ実行しません。可能な限り、速度を大幅に低下させることなくコードのモジュール性を維持します。非常に読みやすいコードが生成されます。

'Never'

関数呼び出しのインライン化を実行しません。最大限の可読性が得られます。この設定では、生成コードのパフォーマンスが大幅に低下する可能性があります。

設定に 'Always' オプションまたは 'Never' オプションを選択しても、コード ジェネレーターがその指示に厳密に従わない場合があります。たとえば、競合がある場合、このオプションは、関数本体内に配置された coder.inline('always') 命令または coder.inline('never') 命令によってオーバーライドされます。詳細については、異なるインライン化制御間の相互作用を参照してください。

生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。

記述した関数が別の記述した関数を呼び出すすべての呼び出しサイトにおけるインライン化の動作。次の表のいずれかの値として指定します。

説明
'Speed'

この値が既定値です。

内部のヒューリスティックな方法を使用して、呼び出しサイトでインライン化を実行するかどうかを判定します。通常、この設定を使用すると高度に最適化されたコードが生成されます。

'Always'

呼び出しサイトでインライン化を常に実行します。

'Readability'

非常に小さい関数の呼び出しを除き、関数呼び出しのインライン化をほぼ実行しません。可能な限り、速度を大幅に低下させることなくコードのモジュール性を維持します。非常に読みやすいコードが生成されます。

'Never'

関数呼び出しのインライン化を実行しません。最大限の可読性が得られます。この設定では、生成コードのパフォーマンスが大幅に低下する可能性があります。

設定に 'Always' オプションまたは 'Never' オプションを選択しても、コード ジェネレーターがその指示に厳密に従わない場合があります。たとえば、競合がある場合、このオプションは、関数本体内に配置された coder.inline('always') 命令または coder.inline('never') 命令によってオーバーライドされます。詳細については、異なるインライン化制御間の相互作用を参照してください。

生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。

ターゲット ハードウェアの単一命令複数データ (SIMD) コードを生成するための命令セット。コード ジェネレーターは、指定された命令セットとそれが依存する命令セットを読み込みます。

Generate SIMD Code from MATLAB Functions for Intel Platformsを参照してください。

GPU Coder を使用する場合、InstructionSetExtensions はコード ジェネレーターで常に無効になります。

生成される C/C++ コードに MISRA と AUTOSAR の既知の違反を抑制する注釈を付けます。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターで生成される C/C++ コードに注釈が追加されません。

trueGenerateCommentstrue の場合のみ、コード ジェネレーターで生成される C/C++ コードに注釈が追加されます。

コード生成レポートを自動的に開く。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

エラーや警告が発生した場合、または GenerateReporttrue の場合、コード ジェネレーターはレポートを生成しますが、レポートを開きません。

trueコード ジェネレーターはコード生成レポートを生成して開きます。

このしきい値より反復回数が少ないループが、コード ジェネレーターによる自動展開の候補です。このしきい値は、MATLAB コードのすべての for ループと parfor ループに適用されます。個々の for ループでは、ループの直前に配置された coder.unroll 命令がループ展開の最適化より優先されます。しきい値は、コード生成中に生成された一部の for ループにも適用できます。

for ループおよび parfor ループの展開を参照してください。

生成コードに MATLAB ソース コードをコメントとして含める。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターは MATLAB ソース コードをコメントとして生成コードに挿入しません。コード ジェネレーターは関数バナーに MATLAB 関数シグネチャを含めません。

true

コード ジェネレーターは MATLAB ソース コードをコメントとして生成コードに挿入します。トレーサビリティ タグがソース コードの各行の直前に挿入されます。トレーサビリティ タグにより、対応する MATLAB ソース コードの位置を特定できます。MATLAB ソース コードへの生成された C/C++ コードのトレースを参照してください。

Embedded Coder をお持ちの場合は、コード生成レポートで、トレーサビリティ タグがソース コードにリンクします。

コード ジェネレーターは関数バナーに MATLAB 関数シグネチャも含めます。

依存関係:

  • GenerateCommentstrue に設定すると、このパラメーターが有効になります。

MATLAB ソース コードへの生成された C/C++ コードのトレースを参照してください。

MATLAB ソース コードの行番号を生成されたコードにコメントとして含めるかどうか。true または false として指定します。

依存関係:

  • MATLABSourceComments により、このパラメーターが有効になります。

生成される識別子の最大文字数。[31, 2048] の範囲の正の整数として指定します。このプロパティは、生成された関数、型定義、変数名に適用されます。ターゲットの C/C++ コンパイラで識別子が短縮されるのを避けるには、ターゲットの C/C++ コンパイラにおける識別子の最大長と一致する値を指定します。

このプロパティは、エントリ ポイント関数や emxArray API 関数用に生成される名前などの、エクスポートされる識別子には適用されません。エクスポートされた識別子の長さがターゲット C コンパイラの識別子の最大長を超える場合には、エクスポートされた識別子はターゲット C/C++ コンパイラによって打ち切られます。

既定値:

  • TargetLang'C' に設定されている場合、MaxIdLength の既定値は 31 です。

  • TargetLang'C++' に設定されている場合、MaxIdLength の既定値は 1024 です。

memcpy 最適化または memset 最適化の最小サイズ (バイト単位)。正の整数として指定します。

連続する配列要素をコピーする生成されたコードを最適化するために、コード ジェネレーターはこのコードを memcpy 呼び出しに置き換えることを試みます。リテラル定数を連続する配列要素に代入する生成されたコードを最適化するために、コード ジェネレーターはこのコードを memset 呼び出しに置き換えることを試みます。

バイト数は、コピーまたは代入する配列要素数に C/C++ データ型に必要なバイト数を乗算した値です。

コピーまたは代入する要素の数が可変である (コンパイル時に不明) 場合、コード ジェネレーターは MemcpyThreshold プロパティを無視します。

memcpy 最適化memset の最適化を参照してください。

マルチインスタンスの再呼び出し可能なコード。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターは、マルチインスタンスの再呼び出し可能なコードを生成しません。

true

コード ジェネレーターは、再呼び出し可能な、再利用可能なマルチインスタンス コードを生成します。

再呼び出し可能なコードを参照してください。

このオプションは GPU Coder 製品ではサポートされていません。

オブジェクト名。文字ベクトルとして指定します。

生成された C/C++ コードで並列 for ループを実行する CPU スレッドの最大数。正の整数として指定します。

生成コードで並列 for ループを実行するための最大スレッド数の指定を参照してください。

リダクション演算用の SIMD コードを生成するには、次の表で示されている値のいずれかを使用します。

説明
false

この値が既定値です。

コード ジェネレーターは、リダクション演算用の SIMD コードを生成しません。

true

このパラメーターを使用するには、InstructionSetExtensions パラメーターの命令セットを選択する必要があります。コード ジェネレーターは、指定された命令セットを使用してリダクション演算の SIMD コードを生成します。

Generate SIMD Code from MATLAB Functions for Intel Platformsを参照してください。

リダクション演算を実行する並列 for ループを生成するには、次の表で示されている値のいずれかを使用します。

説明
false

この値が既定値です。

コード ジェネレーターは、リダクション演算を実行する for ループを自動的に並列化しません。

true

コード ジェネレーターは、EnableAutoParallelizationtrue に設定した場合にのみ、生成コードでリダクション演算を実行する for ループを自動的に並列化します。

Reduction Operations Supported for Automatic Parallelization of for-loopsを参照してください。

メモ

リダクション演算のベクトル化と並列化により、若干の数値的なずれが生じる可能性があります。詳細については、Handling Overflow in Automatic Parallelization of for-loopsを参照してください。

C/C++ コードからビルドする出力。次の表のいずれかの値として指定します。

説明
'LIB'スタティック ライブラリ
'DLL'ダイナミック リンク ライブラリ
'EXE'実行可能プログラム

エントリポイント関数への構造体の参照渡し。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

生成されたコードで、構造体が参照渡しされます。これによりエントリポイント関数境界でのパラメーターのコピー数が最小になり、メモリ使用量と実行時間が削減されます。

メモ

構造体パラメーターのフィールドに書き込むエントリポイント関数が入力値を上書きします。

false生成されたコードで、構造体が参照渡しされます。

このパラメーターはエントリポイント関数にのみ適用されます。

生成されたコードで構造体の引数を参照または値で渡すを参照してください。

codegen を使用した MEX 関数の生成後にビルド プロセスをカスタマイズするコマンド。文字ベクトルとして指定します。

ビルド プロセスのカスタマイズを参照してください。

N 次元のインデックスを使用するコードの生成。次の表のいずれかの値として指定します。

説明
false

1 次元インデックスを使用するコードを生成します (この値が既定値です)。

trueN 次元インデックスを使用するコードを生成します。

N 次元インデックスを使用するコードの生成を参照してください。

生成されたコード内に保持する変数名。次の表のいずれかの値として指定します。

説明
'None'

この値が既定値です。

コード ジェネレーターで変数名を保持する必要はありません。変数再利用の要件に適合する変数であれば、再利用します。

コードで大きい構造体または配列を使用する場合、PreserveVariableNames'None' に設定することでメモリ使用量を削減したり、実行速度を改善できます。

'UserNames'

コード ジェネレーターは MATLAB コードで定義した変数に対応する名前を保持します。ユーザーの変数名が別の名前で置換されたり、ユーザーの名前が別の変数に使用されることはありません。可読性を向上させるには、PreserveVariableNames'UserNames' に設定します。そうすれば、生成コードの変数を MATLAB コードの変数までさらに容易に追跡できます。

PreserveVariableNames'UserNames' に設定しても、最適化によって生成コードから変数が削除されることや、生成されたバイナリ コード内の変数が C/C++ コンパイラによって再利用されることは回避できません。

'All'

すべての変数名を保持します。このパラメーター値により変数再利用が無効になります。テストまたはデバッグのみに使用し、量産コードでは使用しないでください。

生成されたコードでの変数名の保持を参照してください。

コード生成に関する情報をエクスポートする変数の名前。文字ベクトルとして指定します。コード ジェネレーターでは、この変数をベースの MATLAB ワークスペースに作成します。この変数には、コード生成設定、入力ファイル、生成ファイル、およびコード生成メッセージに関する情報が格納されます。

コード生成レポートの情報へのプログラムによるアクセスおよび coder.ReportInfo のプロパティ を参照してください。

潜在的な相違点のレポート。次の表のいずれかの値として指定します。

説明
trueコード ジェネレーターは生成コードと MATLAB コード間での潜在的な動作の相違をレポートします。潜在的な相違はコード生成レポートのタブに一覧表示されます。潜在的な相違とは、特定の状況にある場合にのみ実行時に生じる違いです。
falseコード ジェネレーターは潜在的な相違をレポートしません。

潜在的な相違点のレポートを参照してください。

コード ジェネレーターが関数または変数に使用してはならない名前のリスト。string 配列、文字ベクトルの cell 配列、または文字ベクトルとして指定します。

複数の予約名。次の表のいずれかの値として指定します。

説明
string 配列

ReservedNameArray の string 配列。例: cfg.ReservedNameArray = ["reserve1","reserve2","reserve3"]

文字ベクトルの cell 配列

ReservedNameArray の文字ベクトルの cell 配列。例: cfg.ReservedNameArray = {'reserve1','reserve2','reserve3'}

文字ベクトル

ReservedNameArray のセミコロンで区切られた予約名のリスト。例: cfg.ReservedNameArray = 'reserve1;reserve2;reserve3'

メモ

コード構成オブジェクトでの文字ベクトルを使用した複数のエントリの指定は、将来のリリースで削除される予定です。代わりに string 配列または文字ベクトルの cell 配列を使用してください。詳細については、互換性についての考慮事項を参照してください。

行優先の配列レイアウトを使用するコードの生成。次の表のいずれかの値として指定します。

説明
false

列優先の配列レイアウトを使用するコードを生成します (この値が既定値です)。

true行優先の配列レイアウトを使用するコードを生成します。

行優先の配列レイアウトを使用するコードの生成を参照してください。

生成されたエントリポイント関数の開始時に初期化関数の呼び出しを生成。次の表のいずれかの値として指定されます。

説明
true

この値が既定値です。

初期化関数の呼び出しは、生成されたエントリポイント関数の開始時に含まれています。生成されたコードには、複数のエントリポイント関数が存在する場合でも、初期化関数の呼び出しが 1 回のみであることを確認するためのチェックが含まれています。

false

生成されたエントリポイント関数には初期化関数の呼び出しが含まれていません。

生成された初期化関数と終了関数の使用を参照してください。

依存関係:

  • MultiInstanceCodetrue に設定すると、このパラメーターは無効になります。

生成されたコードでのランタイム エラーの検出とレポート。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

生成されたコードは、範囲外の配列インデックスなどのエラーをチェックしません。

true

生成されるコードで範囲外の配列インデックスなどのエラーのチェックが行われます。

エラー報告ソフトウェアは fprintf を使用してエラー メッセージを stderr に書き込みます。abort を使用してアプリケーションを終了します。fprintf および abort が使用できない場合、指定しなければなりません。関数 abort はプログラムを突然終了します。信号がシステムでサポートされている場合、中止信号 (SIGABRT) を検出してプログラムの終了を制御できます。

エラー メッセージは英語です。

実行時エラーを検出および報告するスタンドアロン C/C++ コードの生成を参照してください。

整数オーバーフローのサポート。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは整数オーバーフローを処理するコードを生成します。オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

false

コード ジェネレーターは整数オーバーフローを処理するコードを生成しません。コードが整数オーバーフローのサポートに依存していることが確認されない限り、SaturateOnIntegerOverflowfalse に設定しないでください。整数オーバーフローのサポートを無効にし、実行時のエラー チェックが有効な場合、生成コードでオーバーフローのエラーが発生します。整数オーバーフローのサポートを無効にし、実行時のエラー チェックも無効にすると、オーバーフローの動作は、ターゲット C コンパイラによって異なります。C 規格では、整数オーバーフローの動作は定義されていません。ただし、ほとんどの C コンパイラはオーバーフロー時にラップします。

このパラメーターは、MATLAB の組み込み整数型にのみ適用されます。double、single または固定小数点データ型には適用されません。

整数オーバーフローまたは非有限のサポートの無効化を参照してください。

アプリケーションごとの最大スタック使用量 (バイト単位)。正の整数として指定します。使用できるスタック サイズより小さい制限値を設定します。そうしないと、実行時スタック オーバーフローが発生する場合があります。C コンパイラはスタック オーバーフローを検出して報告します。

整数オーバーフローまたは非有限のサポートの無効化を参照してください。

非有限値のサポート。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

GenerateNonFiniteFilesIfUsedtrue に設定されている場合、コード ジェネレーターは、非有限値 (Inf および NaN) が使用される場合のみ非有限値をサポートするコードを生成します。

GenerateNonFiniteFilesIfUsedfalse に設定すると、コード ジェネレーターは非有限値 (Inf および NaN) をサポートするコードを常に生成します。

false

コード ジェネレーターは非有限値をサポートするコードを生成しません。

整数オーバーフローまたは非有限のサポートの無効化を参照してください。

生成されたコードで使用する言語。'C' または 'C++' として指定します。

GPU Coder を使用する場合、TargetLang はコード ジェネレーターで常に C++ に設定されます。

依存関係: DeepLearningConfig を設定すると、codegenTargetLangC++ に設定されます。

生成コードに使用する言語標準。次のいずれかの文字ベクトルとして指定します。

  • 'Auto'

  • 'C89/C90 (ANSI)'

  • 'C99 (ISO)'

  • 'C++03 (ISO)'

  • 'C++11 (ISO)'

'Auto' オプションを選択すると、TargetLang の設定に基づいて TargetLangStandard が設定されます。C の場合、既定の標準は 'C99 (ISO)' です。C++ の場合、既定の標準は 'C++11 (ISO)' です。コード ジェネレーターは、選択された C/C++ 標準で利用可能な言語機能と数学ライブラリを使用します。言語標準の変更を参照してください。

C/C++ ライブラリまたは実行可能プログラムをビルドするために使用するツールチェーン。文字ベクトルとして指定します。使用可能なツールチェーンのリストはホスト コンピューターのプラットフォームによって異なり、追加したカスタム ツールチェーンを含めることができます。ツールチェーンを指定しない場合、コード ジェネレーターはインストールされているツールチェーンを自動的に検索します。

メモ:

  • coder.CodeConfig オブジェクト cfg を MATLAB セッションで作成し、そのオブジェクトを別の MATLAB セッションで使用するとします。2 つ目のセッションの MATLAB ホスト コンピューターに cfg.Toolchain プロパティで指定されたツールチェーンがインストールされていないと、このパラメーターは既定値に戻ります。既定値は 'Automatically locate an installed toolchain' です。

MATLAB コード内の高速フーリエ変換 (FFT) 関数用に MATLAB に付属の FFTW ライブラリの呼び出しを生成するコードを生成するかどうか。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターで、MATLAB コード内の FFT 関数用に組み込み FFTW ライブラリの呼び出しを生成しません。

true

コード ジェネレーターで、MATLAB コード内の FFT 関数用に組み込み FFTW ライブラリの呼び出しを生成します。

UseBuiltinFFTWLibrary プロパティと CustomFFTCallback プロパティを両方とも有効にすると、前者が優先されます。

データ型: logical

コード生成の進行状況表示。次の表のいずれかの値として指定します。

説明
false

この値が既定値です。

コード ジェネレーターには、コード生成の進行状況が表示されません。

true

コード ジェネレーターには、コード生成の段階やコンパイラ出力を含む、コード生成の進行状況が表示されます。

MATLAB コマンド ラインでコード生成の進行状況のステータスを表示するかどうか。次の表のいずれかの値として指定します。

説明
'Silent'

コード生成が警告なしで正常に実行された場合に、レポートの生成時も含め、すべてのメッセージを非表示にします。

警告およびエラー メッセージは表示されます。

'Info'

この値が既定値です。

'Silent' モードとの違いは、コード生成が正常に実行された場合に、次の追加のメッセージが表示されます。

  • Code generation successful

  • 生成されたレポートへのリンク (生成された場合)

'Verbose'

'Info' モードで表示されるメッセージに加え、コード生成のステータスとターゲットのビルド ログ メッセージが表示されます。

すべて折りたたむ

コードを生成できる MATLAB 関数を記述します。この例では、入力の合計を返す関数 myadd を使用します。

function c = myadd(a,b)
c = a + b;
end

スタンドアロン C/C++ コード (スタティック ライブラリ、ダイナミック リンク ライブラリ、実行可能プログラム) 生成用の構成オブジェクトを作成します。たとえば、スタティック ライブラリ生成用の構成オブジェクトを作成します。

cfg = coder.config('lib');

既定値を使用しないプロパティの値を変更します。たとえば、生成される C/C++ コードでの実行時エラーの検出とレポートを有効にします。

cfg.RuntimeChecks = true;

codegen を使用してコードを生成します。-config オプションを使用して構成オブジェクトを codegen に渡します。入力引数が double 型のスカラーであることを指定します。

codegen myadd -config cfg -args {1 1} -report

代替機能

ビルド タイプ 'LIB''DLL'、または 'EXE' の既定の構成パラメーターを使用するには、codegen のオプション -config:lib-config:dll-config:exe をそれぞれ使用します。これで、構成オブジェクトを作成して codegen に渡す必要はなくなります。

バージョン履歴

R2011a で導入

すべて展開する