このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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)