このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
MATLAB からの MEX 関数生成用構成パラメーター
coder.MexCodeConfig
オブジェクトには、MEX 関数の生成時に codegen
によって使用される構成パラメーターが含まれます。-config
オプションを使用して、オブジェクトを関数 codegen
に渡します。
cfg = coder.config('mex')
は coder.MexCodeConfig
オブジェクトを作成します。
cfg = coder.config
は coder.MexCodeConfig
オブジェクトを作成します。
CompileTimeRecursionLimit
— コンパイル時の再帰による関数の特殊化の最大数コンパイル時の再帰による関数の特殊化の最大数。正の整数として指定します。MATLAB® コード内で再帰が許可されないようにするには、CompileTimeRecursionLimit
を 0 に設定します。コンパイル時の再帰限界値の既定値は、このタイプの再帰を必要とするほとんどの再帰関数で十分に大きい値です。コンパイル時の再帰限界値が原因でコード生成に失敗する場合にコンパイル時の再帰が必要なときは、限界値を高くします。あるいは、コード ジェネレーターが実行時の再帰を使用するように、MATLAB コードを変更します。コンパイル時の再帰限界値に達するを参照してください。
ConstantFoldingTimeout
— 定数畳み込みによって実行される命令の最大数定数畳み込みが実行する命令の最大数。状況によっては、コード生成で特定の命令を定数にする必要があります。これらの命令で定数畳み込みが行われる前に定数畳み込みが停止した場合、コードの生成は失敗します。この場合は、ConstantFoldingTimeout
の値を増やします。
生成コードの MATLAB Coder の最適化を参照してください。
ConstantInputs
— 定数入力チェック モード'CheckValues'
(既定値) | 'IgnoreValues'
| 'Remove'
定数入力チェック モード。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'CheckValues' |
この値が既定値です。 MEX 関数の呼び出し時に、定数入力の引数に指定する値がコード生成時に指定された値であるかどうかがチェックされます。 MEX 関数と元の MATLAB 関数を同じ引数を使用して呼び出すことができます。そのため、両方の関数に対して同じテスト ファイルを使用できます。 値のチェックによって、MEX 関数の実行速度が遅くなる可能性があります。 |
'IgnoreValues' |
MEX 関数の呼び出し時に、定数入力の引数に指定する値を無視します。コード生成時に指定された値を使用します。 同じテスト ファイルを使用できるため、定数引数の値をチェックするというオーバーヘッドが発生しません。 |
'Remove' |
コード ジェネレーターは、MEX 関数のシグネチャから定数入力の引数を削除します。MEX 関数の呼び出し時に、定数入力の引数の値を指定しません。 このオプションでは下位互換性が提供されます。 |
MEX 関数での定数入力のチェックを参照してください。
CppPackagesToNamespaces
— MATLAB パッケージに対応する C++ 名前空間の生成true
(既定値) | false
MATLAB コード内のパッケージに対応する C++ 名前空間を生成するかどうか。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 コード ジェネレーターは、MATLAB コード内のパッケージに対応する C++ 名前空間を生成します。生成された C++ コードの名前空間への整理を参照してください。 |
false | コード ジェネレーターは、MATLAB コード内のパッケージに対応する C++ 名前空間を生成しません。 |
依存関係:
TargetLang
を 'C++'
に設定すると、このパラメーターが有効になります。
データ型: logical
CppNamespace
— 生成された C++ コードの名前空間の名前''
(既定値) | 文字ベクトル生成された C++ コードの名前空間。空でない文字ベクトルを指定しない限り、コード ジェネレーターは名前空間でコードを生成しません。
生成された C++ コードの名前空間への整理を参照してください。
依存関係:
TargetLang
を 'C++'
に設定すると、このパラメーターが有効になります。
CppNamespaceForMathworksCode
— MathWorks® コードに対して生成された C++ コードを個別の名前空間に配置'coder'
(既定値) | 文字ベクトルMathWorks コードに対して生成された C++ コードの名前空間。このプロパティを空の文字ベクトルとして指定した場合、コード ジェネレーターはこのような名前空間を生成しません。
生成された C++ コードの名前空間への整理を参照してください。
依存関係:
TargetLang
を 'C++'
に設定すると、このパラメーターが有効になります。
データ型: char
CppPreserveClasses
— MATLAB クラスに対応する C++ クラスの生成true
(既定値) | falseMATLAB クラスに対応する C++ クラスと C スタイルの構造体のどちらを生成するか。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 コード ジェネレーターは MATLAB クラスに対応する C++ クラスを生成します。MATLAB クラスに対応する C++ クラスの生成を参照してください。 |
false | コード ジェネレーターは MATLAB クラスに対応する C スタイルの構造体を生成します。 |
依存関係:
TargetLang
を 'C++'
に設定すると、このパラメーターが有効になります。
データ型: logical
CustomHeaderCode
— 生成された C/C++ ヘッダー ファイルの最上部に表示されるカスタム コードMATLAB コードから生成された各 C/C++ ヘッダー ファイル (rtwtypes.h
および rtwhalf.h
を除く) の最上部近くに表示されるカスタム コード。文字ベクトルとして指定します。
CustomInclude
— 生成コードのコンパイル用にインクルード パスに追加するインクルード フォルダー生成コードのコンパイル時にインクルード パスに追加するインクルード フォルダー。インクルード フォルダーのリストを文字ベクトルとして指定します。文字ベクトルでは、インクルード フォルダーを pathsep
文字で区切ります。以下に例を示します。
cfg = coder.config('mex'); cfg.CustomInclude = ['C:\Project' pathsep 'C:\Custom Files'];
CustomInitializer
— 生成された初期化関数に含めるカスタム コード生成された初期化関数に含めるカスタム コード。文字ベクトルとして指定します。
CustomLibrary
— 生成コードにリンクするスタティック ライブラリ ファイル生成コードにリンクするスタティック ライブラリ ファイル。文字ベクトルとして指定します。文字ベクトルでは、ライブラリ ファイル名を pathsep
文字で区切ります。
CustomSource
— コンパイルして生成コードにリンクするソース ファイルコンパイルして生成コードにリンクするソース ファイル。文字ベクトルとして指定します。文字ベクトルでは、ソース ファイル名を pathsep
文字で区切ります。
ビルド プロセスは最初に現在のフォルダー内でソース ファイルを探してから、CustomInclude
に指定したインクルード フォルダー内で探します。検索パス上の複数のフォルダーに同じ名前のソース ファイルがある場合、指定したファイルとは別のファイルがビルド プロセスで使用される可能性があります。
たとえば、foo.cpp
をソース ファイルとして指定するとします。foo.c
と foo.cpp
の両方が検索パスにある場合、ビルド プロセスが foo.c
と foo.cpp
のどちらを使用するか断定できません。
CustomSourceCode
— 生成された .c
または .cpp
ファイルの最上部付近に表示されるコード生成された各 .c
または .cpp
ファイル (rtwhalf.c
または rtwhalf.cpp
を除く) の最上部付近、関数の外側にコードが表示されるよう指定します。文字ベクトルとしてコードを指定します。
C 静的関数の定義は指定しないでください。
CustomTerminator
— 生成された終了関数に表示されるコード 生成された終了関数に表示されるコード。文字ベクトルとして指定します。
DeepLearningConfig
— 深層学習コード生成の構成オブジェクトcoder.MklDNNConfig
オブジェクト深層学習ネットワークのコード生成の構成オブジェクト。coder.MklDNNConfig
オブジェクトとして指定します。
coder.MklDNNConfig
オブジェクトには、Intel® MKL-DNN を使用した深層学習用の C++ コード生成に固有のパラメーターが含まれています。coder.MklDNNConfig
オブジェクトを作成するには、coder.DeepLearningConfig
を使用します。以下に例を示します。
cfg = coder.config('mex'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');
深層学習ネットワークのコード生成には Deep Learning Toolbox™ および MATLAB Coder™ Interface for Deep Learning Libraries サポート パッケージが必要です。
MKL-DNN を使用した、深層学習ネットワークのためのコード生成を参照してください。
メモ
MEX コードの生成は、ARM® Compute Library を使用した深層学習についてはサポートされていません。
依存関係: DeepLearningConfig
を設定すると、codegen
で TargetLang
が C++
に設定されます。
DynamicMemoryAllocation
— 動的メモリ割り当てモード'Threshold'
(既定値) | 'AllVariableSizeArrays'
| 'Off'
動的メモリ割り当てモード。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Threshold' |
この値が既定値です。 コード ジェネレーターは、サイズ (バイト単位) が |
'AllVariableSizeArrays' | コード ジェネレーターは、ヒープ上ですべての可変サイズ配列のメモリを動的に割り当てます。 |
'Off' |
コード ジェネレーターは、スタック上で可変サイズ配列のメモリを静的に割り当てます。 |
制限のない可変サイズの配列では動的なメモリ割り当てが必要です。
依存関係:
EnableVariableSizing
により、このパラメーターが有効になります。
この DynamicMemoryAllocation
を 'Threshold'
に設定すると、DynamicMemoryAllocationThreshold
パラメーターが有効になります。
可変サイズ データのためのコード生成を参照してください。
DynamicMemoryAllocationInterface
— 生成された関数インターフェイスにおける動的に割り当てられた配列'Auto'
(既定値) | 'C'
| 'C++'
生成された C/C++ 関数のインターフェイスにおける動的に割り当てられた配列の実装。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Auto' | これは既定値です。 |
'C' | 生成されたコードは、C スタイルの |
'C++' |
生成されたコードは、 |
依存関係:
EnableVariableSizing
により、このパラメーターが有効になります。
DynamicMemoryAllocationThreshold
— 可変サイズの配列の動的なメモリ割り当てのサイズしきい値65536
(既定値) | 正の整数可変サイズの配列の動的なメモリ割り当てのサイズしきい値。正の整数として指定します。コード ジェネレーターでは、しきい値以上のサイズ (バイト) をもつ可変サイズの配列に動的メモリ割り当てを使用します。
依存関係:
DynamicMemoryAllocation
を 'Threshold'
に設定すると、このパラメーターが有効になります。
可変サイズ データのためのコード生成を参照してください。
EchoExpressions
— 式をエコーtrue
(既定値) | false
式をエコー。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 MEX 関数は、セミコロンで終了していないステートメントの出力を表示します。 |
false |
MEX 関数は、セミコロンで終了していないステートメントの出力を表示しません。 |
このプロパティは、一般的な可視化関数 (disp
、plot
、figure
など) が外部関数として呼び出された場合には適用されません。MEX 関数は、セミコロンまたは EchoExpressions
の値の有無に関係なく、これらの関数の出力を表示します。
EnableAutoExtrinsicCalls
— 自動的な外部関数呼び出しtrue
(既定値) | false
自動的な外部関数呼び出し。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 コード ジェネレーターは、一部の一般的な可視化関数を外部関数として扱います。 |
false | 一般的な可視化関数を coder.extrinsic を使用して外部関数として宣言しない限り、コード ジェネレーターはこれらの可視化関数を外部関数として扱いません。 |
一部の一般的な可視化関数とは plot
、disp
、figure
です。外部関数を参照してください。
EnableDebugging
— C コンパイラのデバッグ モードfalse
(既定値) | true
C コンパイラのデバッグ モード。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
この値が既定値です。 コード ジェネレーターは C コンパイラのデバッグ モードを有効にしません。 |
true |
コード ジェネレーターは C コンパイラのデバッグ モードを有効にします。デバッグ モードが有効になっている場合、C コンパイラはコードを最適化しません。コンパイルは速くなりますが、実行は遅くなります。 |
EnableJIT
— Just-In-Time (JIT) コンパイル モードfalse
(既定値) | true
Just-In-Time (JIT) コンパイル モード。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
この値が既定値です。 コード ジェネレーターは C/C++ コードを生成およびコンパイルして C/C++ MEX 関数を作成します。 |
true |
コード ジェネレーターは MEX 関数の生成に Just-In-Time (JIT) コンパイル テクノロジーを使用します。コード ジェネレーターは、MATLAB コードの抽象表現を含む JIT MEX 関数を作成します。JIT MEX 関数を実行すると、MATLAB はメモリ内に実行可能コードを生成します。 |
MEX 関数の生成を高速化するには、EnableJIT
を true
に設定します。
JIT コンパイルは、カスタム コードや OpenMP ライブラリの使用など、特定のコード生成機能やオプションと互換性がありません。JIT コンパイルを指定した場合にコード ジェネレーターがそれを使用できないと、C/C++ MEX 関数が警告と共に生成されます。EnableJIT
と EnableOpenMP
が true
のときにコードが parfor
を使用する場合、コード ジェネレーターは JIT コンパイルを使用して parfor
ループを for
ループとして処理します。
JIT コンパイルを使用した MEX 生成速度の高速化を参照してください。
EnableMemcpy
— memcpy
最適化true
(既定値) | false
memcpy
最適化。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 可能であれば、コード ジェネレーターは |
false |
コード ジェネレーターは |
EnableMexProfiling
— プロファイリング用計測false
(既定値) | true
生成された MEX 関数のプロファイリングの有効化。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false | この値が既定値です。 コード ジェネレーターは、生成された MEX 関数にプロファイリング用計測を含みません。 |
true | コード ジェネレーターは、生成された MEX 関数にプロファイリング用計測を含みます。MATLAB プロファイラーを使用して MEX をプロファイリングできます。MATLAB プロファイラーを使用した MEX 関数のプロファイリングを参照してください。 |
EnableOpenMP
— parfor
ループの並列化true
(既定値) | false
parfor
ループの並列化。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 可能であれば、コード ジェネレーターは OpenMP ライブラリを使用して、並列実行されるループ反復を生成します。 |
false |
コード ジェネレーターは |
parfor
を参照してください。
OpenMP ライブラリの使用は Just-In-Time (JIT) コンパイルと互換性がありません。EnableJIT
と EnableOpenMP
が true
の場合、コード ジェネレーターは JIT コンパイルを使用し、parfor
ループを for
ループとして処理します。
EnableRuntimeRecursion
— 実行時の再帰のサポートtrue
(既定値) | false
実行時の再帰のサポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 生成されたコードで再帰関数が許可されます。 |
false |
生成されたコードで再帰関数が許可されません。 |
MISRA® などの一部のコーディング標準では、再帰は許可されません。MISRA C® に準拠したコードを生成する可能性を高めるには、EnableRuntimeRecursion
を false
に設定します。
MATLAB コードで実行時の再帰が必要な場合に EnableRuntimeRecursion
が false
のとき、コード生成に失敗します。
再帰関数のコード生成を参照してください。
EnableVariableSizing
— 可変サイズ配列のサポートtrue
(既定値) | false
可変サイズ配列のサポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 可変サイズの配列がコード生成で許可されます。 |
false |
可変サイズの配列がコード生成で許可されません。 |
依存関係:
Dynamic memory allocation
を有効にします。
可変サイズの配列のコード生成を参照してください。
ExtrinsicCalls
— 外部関数呼び出しのサポートtrue
(既定値) | false
外部関数呼び出しのサポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 外部関数に対して、コード ジェネレーターは MATLAB 関数の呼び出しを生成します。コード ジェネレーターはこの関数の内部コードを生成しません。 |
false |
コード ジェネレーターは外部関数を無視します。MATLAB 関数の呼び出しに対して、コードは生成されません。外部関数が MATLAB 関数の出力に影響を与える場合、コード ジェネレーターはコンパイル エラーを発行します。
|
ExtrinsicCalls
の値は、MEX 関数による rand、
randi
、randn
の乱数発生方法に影響を与えます。ExtrinsicCalls
が true
の場合、MEX 関数は MATLAB のグローバル乱数ストリームを使用して乱数を生成します。そうでない場合は、MEX 関数は内蔵の乱数発生器を使用します。
外部関数を参照してください。
FilePartitionMethod
— ファイルの分割モード'MapMFileToCFile'
(既定値) | 'SingleFile'
ファイルの分割モード。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'MapMFileToCFile' |
この値が既定値です。 コード ジェネレーターは各 MATLAB 言語ファイルに対して個別の C/C++ ファイルを生成します。 |
'SingleFile' | コード ジェネレーターは、MATLAB エントリポイント関数にマッピングされる C/C++ 関数に対して 1 つのファイルを生成します。コード ジェネレーターは、ユーティリティ関数に対して個別の C/C++ ファイルを生成します。 |
MATLAB Coder が生成コードを分割する方法を参照してください。
GenCodeOnly
— ソース コードのみの生成false
(既定値) | true
ソース コードのみの生成。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
この値が既定値です。 コード ジェネレーターは C/C++ ソース コードを生成し、オブジェクト コードをビルドします。 |
true |
コード ジェネレーターは C/C++ ソース コードを生成しますが、make コマンドを呼び出したり、オブジェクト コードをビルドしたりしません。MATLAB コードの変更と C/C++ コードの生成を反復するときは、コードのみ生成すると時間を節約できます。 |
GenerateComments
— 生成されたコード内のコメント true
(既定値) | false
生成されたコード内のコメント。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 コード ジェネレーターは生成されたコードにコメントを配置します。 |
false | コード ジェネレーターは生成されたコードにコメントを配置しません。 |
GenerateReport
— コード生成レポートfalse
(既定値) | trueコード生成レポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
この値が既定値です。 コード ジェネレーターは、エラーや警告メッセージが発生した場合のみ、または |
true | コード ジェネレーターはコード生成レポートを生成します。 |
GlobalDataSyncMethod
— グローバルなデータ同期モード'SyncAlways'
(既定値) | 'SyncAtEntryAndExits'
| 'NoSync'
グローバルなデータ同期モード。次の表のいずれかの値として指定します。
値 | グローバル データの説明 | 定数のグローバル データの説明 |
---|---|---|
|
この値が既定値です。 MEX 関数のエントリ時と終了時および外部の呼び出し時にグローバル データを同期することで、MATLAB と生成される MEX 関数の間で最大の一貫性が確保されます。外部呼び出しがグローバル データを変更しない場合は、このオプションを |
MEX 関数のエントリ時と外部呼び出し後に定数のグローバル データの整合性を確認します。MATLAB グローバル ワークスペース内のグローバル データ値が MEX 関数内のコンパイル時の定数のグローバル値と一致しない場合、MEX 関数はエラーで終了します。特定の外部呼び出し後の整合性チェックをオフにするには、 |
|
MEX 関数のエントリ時と終了時のみグローバル データを同期します。少数の外部呼び出しのみがグローバル データを変更する場合、パフォーマンスを最大化するには、このオプションを |
MEX 関数のエントリ時のみに定数のグローバル データを確認します。MATLAB グローバル ワークスペース内のグローバル データ値が MEX 関数内のコンパイル時の定数のグローバル値と一致しない場合、MEX 関数はエラーで終了します。特定の外部呼び出し後の整合性チェックをオンにするには、 |
|
同期化を無効にします。同期化を無効にする前に、MEX 関数が MATLAB グローバル データとやり取りしていないことを確認します。そうでない場合は、MATLAB 関数と MEX 関数との間に不整合が生じる場合があります。 |
整合性チェックを無効にします。 |
グローバル データのためのコード生成を参照してください。
HighlightPotentialRowMajorIssues
— 行優先のレイアウトによる潜在的な問題true
(既定値) | false
行優先のレイアウトによる効率性の潜在的な問題の表示。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
コード生成レポートには、行優先のレイアウトによる効率性の潜在的な問題が表示されます (この値が既定値です)。 |
false | コード生成レポートには、配列レイアウトに関する問題は表示されません。 |
行優先のレイアウトのコード設計を参照してください。
InitFltsAndDblsToZero
— memset を使用した float と double のゼロの代入 true
(既定値) | false
memset
を使用した float と double のゼロの代入。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 可能であれば、コード ジェネレーターは、連続する配列要素への浮動小数点ゼロの代入に対して |
false |
コード ジェネレーターは、連続する配列要素への float と double のゼロの代入に対して |
InlineBetweenMathWorksFunctions
— MathWorks 関数間のインライン化を制御'Speed'
(既定値) | 'Always'
| 'Readability'
| 'Never'
MathWorks が別の MathWorks 関数を呼び出すすべての呼び出しサイトにおけるインライン化の動作。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Speed' | この値が既定値です。 内部のヒューリスティックな方法を使用して、呼び出しサイトでインライン化を実行するかどうかを判定します。通常、この設定を使用すると高度に最適化されたコードが生成されます。 |
'Always' | 呼び出しサイトでインライン化を常に実行します。 |
'Readability' | 非常に小さい関数の呼び出しを除き、関数呼び出しのインライン化をほぼ実行しません。可能な限り、速度を大幅に低下させることなくコードのモジュール性を維持します。非常に読みやすいコードが生成されます。 |
'Never' | 関数呼び出しのインライン化を実行しません。最大限の可読性が得られます。この設定では、生成コードのパフォーマンスが大幅に低下する可能性があります。 |
設定に 'Always'
オプションまたは 'Never'
オプションを選択しても、コード ジェネレーターがその指示に厳密に従わない場合があります。たとえば、競合がある場合、このオプションは、関数本体内に配置された coder.inline('always')
命令または coder.inline('never')
命令によってオーバーライドされます。詳細については、異なるインライン化制御間の相互作用を参照してください。
生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。
InlineBetweenUserAndMathWorksFunctions
— ユーザー記述関数と MathWorks 関数の間のインライン化を制御'Speed'
(既定値) | 'Always'
| 'Readability'
| 'Never'
記述した関数が MathWorks 関数を呼び出すか、MathWorks 関数が記述した関数を呼び出すすべての呼び出しサイトにおけるインライン化の動作。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Speed' | この値が既定値です。 内部のヒューリスティックな方法を使用して、呼び出しサイトでインライン化を実行するかどうかを判定します。通常、この設定を使用すると高度に最適化されたコードが生成されます。 |
'Always' | 呼び出しサイトでインライン化を常に実行します。 |
'Readability' | 非常に小さい関数の呼び出しを除き、関数呼び出しのインライン化をほぼ実行しません。可能な限り、速度を大幅に低下させることなくコードのモジュール性を維持します。非常に読みやすいコードが生成されます。 |
'Never' | 関数呼び出しのインライン化を実行しません。最大限の可読性が得られます。この設定では、生成コードのパフォーマンスが大幅に低下する可能性があります。 |
設定に 'Always'
オプションまたは 'Never'
オプションを選択しても、コード ジェネレーターがその指示に厳密に従わない場合があります。たとえば、競合がある場合、このオプションは、関数本体内に配置された coder.inline('always')
命令または coder.inline('never')
命令によってオーバーライドされます。詳細については、異なるインライン化制御間の相互作用を参照してください。
生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。
InlineBetweenUserFunctions
— ユーザー記述関数間のインライン化を制御'Speed'
(既定値) | 'Always'
| 'Readability'
| 'Never'
記述した関数が別の記述した関数を呼び出すすべての呼び出しサイトにおけるインライン化の動作。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Speed' | この値が既定値です。 内部のヒューリスティックな方法を使用して、呼び出しサイトでインライン化を実行するかどうかを判定します。通常、この設定を使用すると高度に最適化されたコードが生成されます。 |
'Always' | 呼び出しサイトでインライン化を常に実行します。 |
'Readability' | 非常に小さい関数の呼び出しを除き、関数呼び出しのインライン化をほぼ実行しません。可能な限り、速度を大幅に低下させることなくコードのモジュール性を維持します。非常に読みやすいコードが生成されます。 |
'Never' | 関数呼び出しのインライン化を実行しません。最大限の可読性が得られます。この設定では、生成コードのパフォーマンスが大幅に低下する可能性があります。 |
設定に 'Always'
オプションまたは 'Never'
オプションを選択しても、コード ジェネレーターがその指示に厳密に従わない場合があります。たとえば、競合がある場合、このオプションは、関数本体内に配置された coder.inline('always')
命令または coder.inline('never')
命令によってオーバーライドされます。詳細については、異なるインライン化制御間の相互作用を参照してください。
生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。
IntegrityChecks
— メモリの整合性チェックtrue
(既定値) | falseメモリの整合性チェック。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 生成されたコードはメモリの整合性違反を検出し、診断メッセージを表示して実行を停止します。 |
false |
生成されたコードはメモリの整合性違反を検出しません。
|
実行時チェックの制御を参照してください。
LaunchReport
— コード生成レポートを自動的に開くfalse
(既定値) | trueコード生成レポートを自動的に開く。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
この値が既定値です。 エラーや警告が発生した場合、または |
true | コード ジェネレーターはコード生成レポートを生成して開きます。 |
MATLABSourceComments
— 生成コードに MATLAB ソース コードをコメントとして含める false
(既定値) | true
生成コードに MATLAB ソース コードをコメントとして含める。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
この値が既定値です。 コード ジェネレーターは MATLAB ソース コードをコメントとして生成コードに挿入しません。コード ジェネレーターは関数バナーに MATLAB 関数シグネチャを含めません。 |
true | コード ジェネレーターは MATLAB ソース コードをコメントとして生成コードに挿入します。トレーサビリティ タグがソース コードの各行の直前に挿入されます。トレーサビリティ タグにより、対応する MATLAB ソース コードの位置を特定できます。MATLAB ソース コードへの生成された C/C++ コードのトレースを参照してください。 コード ジェネレーターは関数バナーに MATLAB 関数シグネチャも含めます。 |
依存関係:
GenerateComments
により、このパラメーターが有効になります。
MATLAB ソース コードへの生成された C/C++ コードのトレースを参照してください。
MemcpyThreshold
— memcpy
最適化または memset
最適化の最小サイズ memcpy 最適化または memset 最適化の最小サイズ (バイト単位)。正の整数として指定します。
連続する配列要素をコピーする生成されたコードを最適化するために、コード ジェネレーターはこのコードを memcpy
呼び出しに置き換えることを試みます。リテラル定数を連続する配列要素に代入する生成されたコードを最適化するために、コード ジェネレーターはこのコードを memset
呼び出しに置き換えることを試みます。
バイト数は、コピーまたは代入する配列要素数に C/C++ データ型に必要なバイト数を乗算した値です。
コピーまたは代入する要素の数が可変である (コンパイル時に不明) 場合、コード ジェネレーターは MemcpyThreshold
プロパティを無視します。
memcpy 最適化とmemset の最適化を参照してください。
Name
— オブジェクト名'MexCodeConfig'
(既定値) | 文字ベクトルオブジェクト名。文字ベクトルとして指定します。
PostCodeGenCommand
— ビルド プロセスをカスタマイズするコマンド''
(既定値) | 文字ベクトルcodegen
を使用した MEX 関数の生成後にビルド プロセスをカスタマイズするコマンド。文字ベクトルとして指定します。
ビルド プロセスのカスタマイズを参照してください。
PreserveArrayDimensions
— N 次元のインデックスfalse
(既定値) | true
N 次元のインデックスを使用するコードの生成。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
1 次元インデックスを使用するコードを生成します (この値が既定値です)。 |
true | N 次元インデックスを使用するコードを生成します。 |
N 次元インデックスを使用するコードの生成を参照してください。
PreserveVariableNames
— 生成されたコード内に保持する変数名'None'
(既定値) | 'UserNames'
| 'All'
生成されたコード内に保持する変数名。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'None' |
この値が既定値です。 コード ジェネレーターで変数名を保持する必要はありません。変数再利用の要件に適合する変数であれば、再利用します。 コードで大きい構造体または配列を使用する場合、 |
'UserNames' |
コード ジェネレーターは MATLAB コードで定義した変数に対応する名前を保持します。ユーザーの変数名が別の名前で置換されたり、ユーザーの名前が別の変数に使用されることはありません。可読性を向上させるには、
|
'All' |
すべての変数名を保持します。このパラメーター値により変数再利用が無効になります。テストまたはデバッグのみに使用し、量産コードでは使用しないでください。 |
生成されたコードでの変数名の保持を参照してください。
ReportInfoVarName
— コード生成レポートの情報を格納する変数の名前''
(既定値) | 文字ベクトルコード生成に関する情報をエクスポートする変数の名前。文字ベクトルとして指定します。コード ジェネレーターでは、この変数をベースの MATLAB ワークスペースに作成します。この変数には、コード生成設定、入力ファイル、生成ファイル、およびコード生成メッセージに関する情報が格納されます。
コード生成レポートの情報へのプログラムによるアクセスおよび coder.ReportInfo のプロパティ を参照してください。
ReportPotentialDifferences
— 潜在的な相違点のレポートtrue
(既定値) | false
潜在的な相違点のレポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | コード ジェネレーターは生成コードと MATLAB コード間での潜在的な動作の相違をレポートします。潜在的な相違はコード生成レポートのタブに一覧表示されます。潜在的な相違とは、特定の状況にある場合にのみ実行時に生じる違いです。 |
false | コード ジェネレーターは潜在的な相違をレポートしません。 |
潜在的な相違点のレポートを参照してください。
ReservedNameArray
— コード ジェネレーターが関数や変数用に使用できない名前''
(既定値) | 文字ベクトル | string スカラーコード ジェネレーターが関数または変数に使用してはならない名前のリスト。文字ベクトルまたは string スカラーとして指定します。複数の予約名を指定するには、セミコロンで区切られた予約名のリストを ReservedNameArray
で使用します。例: cfg.ReservedNameArray =
"reserve1;reserve2;reserve3"
ResponsivenessChecks
— 応答性チェックtrue
(既定値) | false
応答性チェック。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true |
この値が既定値です。 Ctrl + C を使用して生成された MEX 関数の実行を停止できます。 |
false |
長時間かかる MEX 関数を終了させるには、MATLAB を終了させなければならない場合があります。 |
実行時チェックの制御を参照してください。
RowMajor
— 行優先の配列レイアウトfalse
(既定値) | true
行優先の配列レイアウトを使用するコードの生成。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
false |
列優先の配列レイアウトを使用するコードを生成します (この値が既定値です)。 |
true | 行優先の配列レイアウトを使用するコードを生成します。 |
行優先の配列レイアウトを使用するコードの生成を参照してください。
SaturateOnIntegerOverflow
— 整数オーバーフローのサポートtrue
(既定値) | false
整数オーバーフローのサポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 コード ジェネレーターは整数オーバーフローを処理するコードを生成します。オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。 |
false | コード ジェネレーターは整数オーバーフローを処理するコードを生成しません。コードが整数オーバーフローのサポートに依存していることが確認されない限り、 |
このパラメーターは、MATLAB の組み込み整数型にのみ適用されます。double、single または固定小数点データ型には適用されません。
整数オーバーフローまたは非有限のサポートの無効化を参照してください。
StackUsageMax
— アプリケーションごとの最大スタック使用量200000
(既定値) | 正の整数アプリケーションごとの最大スタック使用量 (バイト単位)。正の整数として指定します。使用できるスタック サイズより小さい制限値を設定します。そうしないと、実行時スタック オーバーフローが発生する場合があります。C コンパイラはスタック オーバーフローを検出して報告します。
スタック領域使用量の制御を参照してください。
TargetLang
— 生成されたコードで使用する言語'C'
(既定値) | 'C++'
生成されたコードで使用する言語。'C'
または 'C++'
として指定します。C++ を指定する場合、コード ジェネレーターは C コードを .cpp ファイルにラップするため、C++ コンパイラおよび外部 C++ アプリケーションとのインターフェイスを使用できます。C++ クラスは生成しません。
依存関係: DeepLearningConfig
を設定すると、codegen
で TargetLang
が C++
に設定されます。
コードを生成できる MATLAB 関数を記述します。この例では、入力の合計を返す関数 myadd
を使用します。
function c = myadd(a,b) c = a + b; end
MEX 関数生成用の構成オブジェクトを作成します。
cfg = coder.config('mex');
既定値を使用しないプロパティの値を変更します。たとえば、Just-In-Time (JIT) コンパイルを有効にします。
cfg.EnableJIT = true;
codegen
を使用してコードを生成します。-config
オプションを使用して構成オブジェクトを codegen
に渡します。入力引数が double 型のスカラーであることを指定します。
codegen myadd -config cfg -args {1 1} -report
構成オブジェクトを作成する代わりに、MEX 関数の生成で既定の構成パラメーター値を使用するには、構成オブジェクトを指定せずに、または -config:mex
オプションを使用して codegen
を呼び出すことができます。
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.