coder.approximation
関数置換構成オブジェクトの作成
構文
説明
はコード生成または固定小数点変換の最中に使用する関数置換構成オブジェクトを作成します。この構成オブジェクトは、q
= coder.approximation(function_name
)function_name
で指定された MATLAB® 関数に対してルックアップ テーブルの近似を作成する方法を指定します。関数 fiaccel
で使用するためにこの近似を coder.FixptConfig
オブジェクトに関連付けるには、coder.FixptConfig
構成オブジェクトの addApproximation
メソッドを使用します。
この構文は coder.approximation
が自動的に置換可能な関数に対してのみ使用します。これらの関数は、引数 function_name
にリストされます。
例
既定のルックアップ テーブルによる関数 log
の置換
既定の設定を使用して関数置換の構成オブジェクトを作成します。生成されたコード内のルックアップ テーブルでは 1000 個の点が使用されます。
logAppx = coder.approximation('log');
一様なルックアップ テーブルによる関数 log
の置換
関数置換の構成オブジェクトを作成します。入力範囲と置換関数の名前に追加する接頭辞を指定します。生成されたコード内のルックアップ テーブルでは 1000 個の点が使用されます。
logAppx = coder.approximation('Function','log','InputRange',[0.1,1000],... 'FunctionNamePrefix','log_replace_');
最適化されたルックアップ テーブルによる関数 log
の置換
関数置換の構成オブジェクトを作成します。'OptimizeLUTSize'
オプションを使用して、最適化されたルックアップ テーブルによる関数 log
の置換を指定します。生成されたコード内のルックアップ テーブルでは、既定の数よりも少ない点が使用されます。
logAppx = coder.approximation('Function','log','OptimizeLUTSize', true,... 'InputRange',[0.1,1000],'InterpolationDegree',1,'ErrorThreshold',1e-3,... 'FunctionNamePrefix','log_optim_','OptimizeIterations',25);
最適化されたルックアップ テーブルによるカスタム関数の置換
カスタム関数 saturateExp
を最適化されたルックアップ テーブルで置換するように指定した関数置換の構成オブジェクトを作成します。
カスタム関数 saturateExp
を作成します。
saturateExp = @(x) 1/(1+exp(-x));
関数 saturateExp
を最適化されたルックアップ テーブルで置換するように指定した関数置換の構成オブジェクトを作成します。関数 saturateExp
は、coder.approximation
によって自動的に近似を生成可能な関数としてリストされていないため、CandidateFunction
プロパティを指定しなければなりません。
saturateExp = @(x) 1/(1+exp(-x)); custAppx = coder.approximation('Function','saturateExp',... 'CandidateFunction', saturateExp,... 'NumberOfPoints',50,'InputRange',[0,10]);
入力引数
function_name
— 置換する関数名
'acos'
| 'acosd'
| 'acosh'
| 'acoth'
| 'asin'
| 'asind'
| 'asinh'
| 'atan'
| 'atand'
| 'atanh'
| 'cos'
| 'cosd'
| 'cosh'
| 'erf '
| 'erfc'
| 'exp'
| 'log'
| 'normcdf'
| 'reallog'
| 'realsqrt'
| 'reciprocal'
| 'rsqrt'
| 'sin'
| 'sinc'
| 'sind'
| 'sinh'
| 'sqrt'
| 'tan'
| 'tand'
置換する関数名。文字列で指定します。関数はリストした関数のいずれかでなければなりません。
例: 'sqrt'
データ型: char
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。
R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Function', 'log'
Architecture
— ルックアップ テーブルの近似のアーキテクチャ
'LookupTable'
(既定値) | 'Flat'
ルックアップ テーブルの近似のアーキテクチャ。'Architecture'
と文字列で構成されるコンマ区切りのペアとして指定します。ルックアップ テーブルのアーキテクチャを指定する場合は、この引数を使用します。Flat
アーキテクチャは内挿を使用しません。
データ型: char
CandidateFunction
— 置換関数の関数ハンドル
関数ハンドル | 文字列
置換関数の関数ハンドル。'CandidateFunction'
と関数ハンドルまたは関数ハンドルを参照する文字列で構成されるコンマ区切りのペアとして指定します。置換する関数が function_name
の一覧にない場合にこの引数を使用します。置換する関数の関数ハンドルまたは関数ハンドルを参照する文字列を指定します。関数は、ファイルで定義するか、無名関数として定義できます。
候補関数を指定しない場合は、Function
プロパティを使用して置換することを選択した関数が CandidateFunction
として設定されます。
例: 'CandidateFunction', @(x) (1./(1+x))
データ型: function_handle
| char
ErrorThreshold
— 最適なルックアップ テーブルのサイズを計算するために使用される誤差のしきい値
0.001 (既定値) | 非負のスカラー
最適なルックアップ テーブルのサイズを計算するために使用される誤差のしきい値。'ErrorThreshold'
と非負のスカラーで構成されるコンマ区切りのペアとして指定します。'OptimizeLUTSize'
が true
の場合、この引数は必須です。
Function
— ルックアップ テーブルの近似に置き換える関数の名前
function_name
ルックアップ テーブルの近似に置き換える関数の名前。'Function'
と文字列で構成されるコンマ区切りのペアとして指定します。連続で状態をもたない関数でなければなりません。function_name
にリストされているいずれかの関数を指定した場合、変換プロセスでは自動的に置換関数が生成されます。それ以外の場合は、引数 'CandidateFunction'
に置換する関数も指定しなければなりません。
例: 'Function'
,'log'
例: 'Function'
, 'my_log'
,'CandidateFunction'
,@my_log
データ型: char
FunctionNamePrefix
— 生成される固定小数点の関数名の接頭辞
'replacement_' (既定値) | 文字列
生成される固定小数点の関数名の接頭辞。'FunctionNamePrefix'
と文字列で構成されるコンマ区切りのペアとして指定します。生成される関数の名前は、接頭辞とそれに続く元の MATLAB 関数の名前で構成されます。
例: ‘log_replace_’
InputRange
— 関数を置換する範囲
[ ]
(既定値) | 2 行 1 列の行ベクトル | 2 行 N 列の行列
関数を置換する範囲。'InputRange'
と 2 行 1 列の行ベクトルまたは 2 行 N 列の行列で構成されるコンマ区切りのペアとして指定します。
例: [-1 1]
InterpolationDegree
— 内挿の次元
1
(既定値) | 0
| 2
| 3
内挿の次元。'InterpolationDegree'
と 1
(線形)、0
(なし)、2
(2 次) または 3
(3 次) で構成されるコンマ区切りのペアとして指定します。
NumberOfPoints
— ルックアップ テーブルの点の数
1000
(既定値) | 正の整数
ルックアップ テーブルの点の数。'NumberOfPoints'
と正の整数値で構成されるコンマ区切りのペアとして指定します。
OptimizeIterations
— 反復回数
25 (既定値) | 正の整数
ルックアップ テーブルのサイズを最適化する際に実行する反復回数。'OptimizeIterations'
と正の整数で構成されるコンマ区切りのペアとして指定します。
OptimizeLUTSize
— ルックアップ テーブルのサイズの最適化
false
(既定値) | true
ルックアップ テーブルのサイズの最適化。'OptimizeLUTSize'
と logical 値で構成されるコンマ区切りのペアとして指定します。このプロパティを true
に設定すると、領域で最適化されたルックアップ テーブルが生成されます。このルックアップ テーブルには可能な限り少ない数の点が含まれます。このルックアップ テーブルはサイズについては最適化されていますが、速度については効果的でない場合があります。
PipelinedArchitecture
— パイプライン有効化オプション
false
(既定値) | true
パイプライン有効化オプション。'PipelinedArchitecture'
と logical 値で構成されるコンマ区切りのペアとして指定します。
出力引数
q
— coder.mathfcngenerator.LookupTable
または coder.mathfcngenerator.Flat
構成オブジェクトとして返される関数置換の構成オブジェクト
coder.mathfcngenerator.LookupTable
構成オブジェクト | coder.mathfcngenerator.Flat
構成オブジェクト
MATLAB 関数の近似の作成方法を指定する関数置換構成オブジェクト。coder.FixptConfig
構成オブジェクトの addApproximation
メソッドを使用して、この構成オブジェクトを coder.FixptConfig
オブジェクトに関連付けます。そして関数 fiaccel
の -float2fixed
オプションを coder.FixptConfig
と共に使用して、浮動小数点の MATLAB コードを固定小数点の MATLAB コードに変換します。
プロパティ | 既定値 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
バージョン履歴
R2014b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
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: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)