Main Content

approximate

クラス: FunctionApproximation.LUTSolution
パッケージ: FunctionApproximation

FunctionApproximation.LUTSolution からの Lookup Table ブロックまたは MATLAB 関数としてのルックアップ テーブルの生成

説明

approximate(solution) は、FunctionApproximation.Options オブジェクトの ApproximateSolutionType プロパティに応じて、Lookup Table ブロックで構成されるサブシステムを含む Simulink® モデルを生成するか、ルックアップ テーブルを MATLAB® 関数として生成します。生成されるルックアップ テーブルのデータとブレークポイントは、FunctionApproximation.LUTSolution オブジェクト solution によって指定されます。生成される Lookup Table ブロックは Data Type Conversion ブロックで囲まれます。

approximate(solution,'Name',fileName) は、生成される .m スクリプトの名前を fileName で指定された値にして、ルックアップ テーブルを MATLAB 関数として生成します。このオプションは、FunctionApproximation.OptionsApproximateSolutionType プロパティが MATLAB に設定されている場合にのみ利用可能です。

approximate(solution,'Name',fileName,'Path',filePath) は、生成される .m スクリプトのファイル パスを filePath で指定された値にして、ルックアップ テーブルを MATLAB 関数として生成します。このオプションは、FunctionApproximation.OptionsApproximateSolutionType プロパティが MATLAB に設定されている場合にのみ利用可能です。

入力引数

すべて展開する

ルックアップ テーブルを生成する解。FunctionApproximation.LUTSolution オブジェクトとして指定します。

生成される MATLAB 関数のファイル名。文字配列として指定します。カスタム ファイル名が指定されていない場合、タイム スタンプを使用して一意のファイル名が生成されます。例: approximateFunction_20210617T111033122.m

例: approximate(solution,'Name','myLUT')

データ型: char

生成される MATLAB 関数のファイル パス。文字配列として指定します。カスタム ファイル パス名が指定されていない場合、現在の作業ディレクトリが使用されます。

例: approximate(solution,'Name','myLUT','Path','C:\Users\myPath')

データ型: char

すべて展開する

近似する関数を定義する FunctionApproximation.Problem オブジェクトを作成します。

problem = FunctionApproximation.Problem('tanh')
problem = 

  1x1 FunctionApproximation.Problem with properties:

    FunctionToApproximate: @(x)tanh(x)
           NumberOfInputs: 1
               InputTypes: "numerictype(1,16,12)"
         InputLowerBounds: -8
         InputUpperBounds: 8
               OutputType: "numerictype(1,16,15)"
                  Options: [1x1 FunctionApproximation.Options]

他のオプションについてはすべて既定値を使用します。関数 tanhsolve メソッドを使用して近似します。

solution = solve(problem)
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) | 
|   0 |             64 |        0 |          2 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.229091e-01 |
|   1 |           1248 |        1 |         76 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.368265e-03 |
|   2 |           1232 |        1 |         75 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.439035e-03 |
|   3 |            944 |        1 |         57 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.780470e-03 |
|   4 |            928 |        1 |         56 |              16 |           16 |             EvenSpacing |     7.812500e-03, 6.110240e-03 |
|   5 |            656 |        0 |         39 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.678519e-02 |
|   6 |            640 |        0 |         38 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.660649e-02 |
|   7 |            784 |        1 |         47 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.743777e-03 |
|   8 |            704 |        1 |         42 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.805676e-03 |
|   9 |            672 |        1 |         40 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.809550e-03 |
|  10 |            368 |        0 |         21 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.855583e-02 |
|  11 |            512 |        0 |         30 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.773526e-02 |
|  12 |            592 |        0 |         35 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.088471e-02 |
|  13 |            624 |        0 |         37 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.870074e-02 |
|  14 |            384 |        1 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.812317e-03 |
|  15 |            384 |        0 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 1.196141e-02 |
|  16 |            384 |        1 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.812317e-03 |

Best Solution
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) |
|  14 |            384 |        1 |         12 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.812317e-03 |


solution = 

  1x1 FunctionApproximation.LUTSolution with properties:

          ID: 14
    Feasible: "true"

関数 tanh を近似する Lookup Table ブロックを含む Simulink™ サブシステムを生成します。

approximate(solution)

バージョン履歴

R2018a で導入