このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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
155.0038
157.0037
importedExternPointerInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExternPointer")'
importedExternPointerInportHandles = 2×1
159.0033
161.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);
入力引数
関数 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")
データ インターフェイス
検索条件に含めるデータ要素のストレージ クラスの名前。次の値のいずれかとして指定します。
"Auto"
"ExportedGlobal"
"ImportedExtern"
"ImportedExternPointer"
使用可能なストレージ クラスのリストは、指定したカテゴリによって異なります。
コード ジェネレーターが生成されたコード内でデータ要素を識別するために使用する名前。"Auto"
以外のストレージ クラスに適用されます。
データ型: char
| string
出力引数
検出されたモデル要素。指定した要素カテゴリに応じて string 配列またはハンドル配列として返されます。
要素カテゴリ | 返されるオブジェクトのタイプ |
---|---|
"Inports" 、"Outports" 、"States" | ブロック ハンドル |
"Signals" | 端子ハンドル |
"DataStores" | ブロック ハンドル |
"ModelParameters" | モデル パラメーター名 |
"ModelParameterArguments" | モデル パラメーター引数名 |
"ModelVariantControls" | Simulink.VariantControl オブジェクト名 |
"ModelVariantControlArguments" | Simulink.VariantControl モデル引数名 |
"ModelVariantVariables" | Simulink.VariantVariable オブジェクト名 |
バージョン履歴
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)