find
モデル コード マッピングのカテゴリに対するモデル要素の取得
構文
説明
は指定されたカテゴリのモデル コード マッピングの要素をオブジェクトの配列として返します。modelElementsFound = find(coderMapObj,elementCategory)
は指定されたプロパティと値の条件に一致する指定されたカテゴリのモデル コード マッピングの要素を返します。modelElementsFound= find(coderMapObj,elementCategory,Name=Value)
例
プログラム インターフェイスを使用して、コード マッピングに関連するモデル要素を検出します。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[入力端子] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル CoderMapAPI を開きます。
simulinkModel = "CoderMapAPI";
open_system(simulinkModel);このモデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
ImportedExtern ストレージ クラスの端子と ImportedExternPointer ストレージ クラスの入力端子の入力端子ハンドルを検出します。
importedExternInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExtern")'
importedExternInportHandles = 2×1
151.0038
153.0037
importedExternPointerInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExternPointer")'
importedExternPointerInportHandles = 2×1
155.0032
157.0024
入力端子の名前を取得します。
importedExterInportNames = string(get_param(importedExternInportHandles,"Name"))importedExterInportNames = 2×1 string
"in_port_1"
"in_port_2"
importedExternPointerInportNames = string(get_param(importedExternPointerInportHandles,"Name"))importedExternPointerInportNames = 2×1 string
"in_port_3"
"in_port_4"
モデルからコードを生成します。
evalc("slbuild(simulinkModel)");ImportedExtern および ImportedExternPointer ストレージ クラスのルートレベルの端子は、モデルの生成されたプライベート ヘッダー ファイル内の別個のセクションで宣言されます。
プライベート ヘッダー ファイルの名前を格納します。
priv_h_file = fullfile(simulinkModel+"_grt_rtw",simulinkModel+"_private.h")
priv_h_file = "CoderMapAPI_grt_rtw/CoderMapAPI_private.h"
以下に、ヘッダー ファイル内のルートレベルの端子の宣言を示します。
/* Imported (extern) block signals */ extern real_T in_port_1; /* '<Root>/in_port_1' */ extern real_T in_port_2; /* '<Root>/in_port_2' */ /* Imported (extern) pointer block signals */ extern real_T *in_port_3; /* '<Root>/in_port_3' */ extern real_T *in_port_4; /* '<Root>/in_port_4' */
端子のストレージ クラスは関数 find に渡したストレージ クラスと一致しています。
ヘッダー ファイルを開くには、MATLAB コマンド ウィンドウに次のコマンドを入力します。
edit(priv_h_file)
モデル キャンバスおよび [コード マッピング] エディターで強調表示された ImportedExtern の入力端子を確認するには、次のコマンドを入力します。
arrayfun(@(pHandle) set_param(pHandle,Selected="on"),importedExternInportHandles);プログラム インターフェイスを使用して、モデルの既定の設定にマッピングされた関数カスタマイズ テンプレートをもつエントリポイント関数を検索し、テンプレートを既定のカスタマイズ テンプレートに再マッピングします。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[Functions] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル ECoderMapAPI を開きます。
simulinkModel = "ECoderMapAPI";
open_system(simulinkModel);モデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
コード マッピング オブジェクトを使用して、モデルの既定の設定にマッピングされた関数カスタマイズ テンプレートをもつすべてのエントリポイント関数を検索します。次に、見つかった関数の名前を表示します。
funcObjs = find(codeMapObj,"Functions",FunctionCustomizationTemplate="Model default"); disp(funcObjs')
"Initialize"
"Terminate"
"Periodic:D1"
見つかった関数の関数カスタマイズ テンプレートを Default にマッピングします。
setFunction(codeMapObj,funcObjs,FunctionCustomizationTemplate="Default");find 関数を使用して、モデルの既定の設定にマッピングされたカスタマイズ テンプレートをもつエントリポイント関数があるかどうかをテストします。空のリストが返されるはずです。
find(codeMapObj,"Functions",FunctionCustomizationTemplate="Model default")
ans = 0×0 empty string array
見つかった関数の関数カスタマイズ テンプレートをモデルの既定の設定に再度マッピングします。
setFunction(codeMapObj,funcObjs,FunctionCustomizationTemplate="Model Default");入力引数
関数 coder.mapping.api.get の呼び出しで返されるコード マッピング オブジェクト
例: coderMapObj = coder.mapping.api.get(bdroot)
モデル コード マッピングで検索するモデル要素のカテゴリ。次の値のいずれかとして指定します。
"DataStores""DataTransfers""ExportedFunctions""Functions""FunctionCallers""Inports""ModelParameters""ModelParameterArguments""ModelVariantControls""ModelVariantControlArguments""ModelVariantVariables""Outports""PartitionFunctions""PartitionUpdateFunctions""PeriodicFunctions""PeriodicUpdateFunctions""ResetFunctions""Signals""SimulinkFunctions""States"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: find(coderMapObj,StorageClass="Bitfield")
データ インターフェイス
検索条件に含めるデータ要素のストレージ クラスの名前。ストレージ クラスは、モデルの内部 Embedded Coder® ディクショナリ、またはモデルに付加されている共有 Embedded Coder ディクショナリのいずれかで定義されます。
使用可能なストレージ クラスのリストは、指定したカテゴリによって異なります。
コード ジェネレーターが生成されたコード内でデータ要素を識別するために使用する名前。"Auto" 以外のストレージ クラスに適用されます。
データ型: char | string
データ要素および外部コードによって読み取られるグローバル データの定義を含む C ソース ファイルのファイル名。ストレージ クラス Const、ConstVolatile、ExportToFile、および Volatile に適用されます。
データ型: char | string
Embedded Coder ディクショナリで定義されている、モデルの関数カスタマイズ テンプレートの名前。
データ型: char | string
モデル用に生成されたエントリポイント関数の名前。
データ型: char | string
データ要素が生成コードで呼び出す get 関数の名前。ストレージ クラス GetSet に適用されます。
データ型: char | string
データ要素および外部コードによって読み取られるグローバル データの宣言を含む C ヘッダー ファイルのファイル名。ストレージ クラス Const、ConstVolatile、Define、ExportToFile、GetSet、ImportedDefine、ImportFromFile、および Volatile に適用されます。
データ型: char | string
Embedded Coder ディクショナリで定義されたモデル用のメモリ セクションの名前。
データ型: char | string
同じモデルの階層構造の他のモデルで使用されるグローバル データを所有するモデルの名前。グローバル データ定義は、所有者モデル用に生成されたコードに含まれます。ストレージ クラス Const、ConstVolatile、ExportToFile、および Volatile に適用されます。
データ型: char | string
モデル コンフィギュレーション パラメーター [配列のレイアウト] が [行優先] に設定されている場合、生成されたコード内で多次元配列として表されるデータ要素の次元を保持するかどうかを示すフラグ。ストレージ クラス Const、ConstVolatile、ExportToFile、FileScope、GetSet、ImportFromFile、Localizable、および Volatile に適用されます。
データ型: logical
データ要素が生成コードで呼び出す set 関数の名前。ストレージ クラス GetSet に適用されます。
データ型: char | string
コード ジェネレーターが生成されたコード内でデータ要素の構造体を識別するために使用する名前。ストレージ クラス Bitfield および Struct に適用されます。
データ型: char | string
モデルの Embedded Coder ディクショナリで定義されたストレージ クラス プロパティ。指定可能な値は、ストレージ クラスの定義に応じて異なります。
サービス インターフェイス
Embedded Coder ディクショナリで定義されている受信側サービス インターフェイスの名前を含む string または文字ベクトル。ターゲット環境内で、コンポーネントはターゲット プラットフォームの受信側サービスを呼び出すことで他のコンポーネントからデータを受信します。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。
受信側サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Sender and Receiver Service Interfaces for Model Inports and Outportsを参照してください。
データ型: char | string
Embedded Coder ディクショナリで定義されている送信側サービス インターフェイスの名前を含む string または文字ベクトル。ターゲット環境内で、コンポーネントはターゲット プラットフォームの送信側サービスを呼び出すことで他のコンポーネントにデータを送信します。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。
送信側サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Sender and Receiver Service Interfaces for Model Inports and Outportsを参照してください。
データ型: char | string
Embedded Coder ディクショナリで定義されている測定サービス インターフェイスの名前を含む string または文字ベクトル。信号、状態、およびデータ ストアの測定サービス インターフェイスを構成することで、データを測定用に生成コードで保持できます。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。状態のデータをコードで保持する必要がない場合は、"Not measured" を指定します。
測定サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Measurement Service Interfaces for Signals, States, and Data Storesを参照してください。
データ型: char | string
Embedded Coder ディクショナリで定義されているパラメーター調整サービス インターフェイスの名前を含む string または文字ベクトル。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。
パラメーター調整サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Parameter and Parameter Argument Tuning Service Interfaces for Model Parameters and Model Parameter Argumentsを参照してください。
データ型: char | string
Embedded Coder ディクショナリで定義されているパラメーター引数調整サービス インターフェイスの名前を含む string または文字ベクトル。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。
パラメーター引数調整サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Parameter and Parameter Argument Tuning Service Interfaces for Model Parameters and Model Parameter Argumentsを参照してください。
データ型: char | string
Embedded Coder ディクショナリで定義されているタイマー サービス インターフェイスの名前を含む string または文字ベクトル。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。
このプロパティは、エクスポートされた関数にのみ適用できます。
タイマー サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Timer Service Interfacesを参照してください。
データ型: char | string
出力引数
検出されたモデル要素。指定した要素カテゴリに応じて string 配列またはハンドル配列として返されます。
| 要素カテゴリ | 返されるオブジェクトのタイプ |
|---|---|
"Inports"、"Outports"、"States" | ブロック ハンドル |
"Signals" | 端子ハンドル |
"DataStores" | ブロック ハンドル |
"ModelParameters" | モデル パラメーター名 |
"ModelParameterArguments" | モデル パラメーター引数名 |
"ModelVariantControls" | Simulink.VariantControl オブジェクト名 |
"ModelVariantControlArguments" | Simulink.VariantControl モデル引数名 |
"ModelVariantVariables" | Simulink.VariantVariable オブジェクト名 |
"ExportedFunctions"、"Functions"、"PartitionFunctions"、"PartitionUpdateFunctions"、"PeriodicFunctions"、"PeriodicUpdateFunctions"、"ResetFunctions"、および "SimulinkFunctions" | 関数名 |
バージョン履歴
R2020b で導入コード マッピングのカテゴリから Simulink.VariantControl オブジェクトと Simulink.VariantVariable オブジェクトを検出するために、find 関数の elementCategory 引数で次の値がサポートされるようになりました。
ModelVariantControls— モデル コード マッピングにあるSimulink.VariantControlオブジェクトを検出ModelVariantControlArguments— モデル引数として設定された、モデル コード マッピングにあるSimulink.VariantControlオブジェクトを検出ModelVariantVariables— モデル コード マッピングにあるSimulink.VariantVariableオブジェクトを検出
関数 find で、モデル パラメーター引数がモデル パラメーターとは別に返されるようになりました。
R2022b 以降、モデル コード マッピング内のモデル パラメーター引数であるすべての要素を返すには、次のように入力します。
cm = coder.mapping.api.get("myConfigModel"); modelParamArgs = find(cm,"ModelParameterArguments");
モデル コード マッピング内のモデル パラメーターであるすべての要素を返すには、次のように入力します。
cm = coder.mapping.api.get("myConfigModel"); modelParams = find(cm,"ModelParameters");
以前のリリースでは、elementCategory 引数として ModelParameters を指定すると、モデル パラメーターとモデル パラメーター引数の両方が返されていました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)