このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
find
構文
説明
は指定されたカテゴリのモデル コード マッピングの要素をオブジェクトの配列として返します。modelElementsFound
= find(coderMapObj
,elementCategory
)
は指定されたプロパティと値の条件に一致する指定されたカテゴリのモデル コード マッピングの要素を返します。modelElementsFound
= find(coderMapObj
,elementCategory
,Name=Value
)
例
Simulink モデルのコード マッピング要素のプログラムによる検出
プログラム インターフェイスを使用して、コード マッピングに関連するモデル要素を検出します。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[入力端子] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル CoderMapAPI
を開きます。
simulinkModel = "CoderMapAPI";
open_system(simulinkModel);
このモデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
ImportedExtern
ストレージ クラスの端子と ImportedExternPointer
ストレージ クラスの入力端子の入力端子ハンドルを検出します。
importedExternInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExtern")'
importedExternInportHandles = 2×1
154.0004
278.0004
importedExternPointerInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExternPointer")'
importedExternPointerInportHandles = 2×1
280.0002
282.0002
入力端子の名前を取得します。
importedExterInportNames = string(get_param(importedExternInportHandles,"Name"))
importedExterInportNames = 2x1 string
"in_port_1"
"in_port_2"
importedExternPointerInportNames = string(get_param(importedExternPointerInportHandles,"Name"))
importedExternPointerInportNames = 2x1 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);
入力引数
coderMapObj
— コード マッピング オブジェクト
CodeMapping
オブジェクト
関数 coder.mapping.api.get
の呼び出しで返されるコード マッピング オブジェクト
例: coderMapObj = coder.mapping.api.get(bdroot)
elementCategory
— モデル要素のカテゴリ
"DataStores"
| "DataTransfers"
| ...
モデル コード マッピングで検索するモデル要素のカテゴリ。次の値のいずれかとして指定します。
"DataStores"
"DataTransfers"
"ExportedFunctions"
"Functions"
"FunctionCallers"
"Inports"
"ModelParameters"
"ModelParameterArguments"
"Outports"
"PartitionFunctions"
"PartitionUpdateFunctions"
"PeriodicFunctions"
"PeriodicUpdateFunctions"
"ResetFunctions"
"Signals"
"SimulinkFunctions"
"States"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に配置しなければなりませんが、ペアの順序は重要ではありません。
例: find(coderMapObj,StorageClass="Bitfield")
StorageClass
— ストレージ クラスの名前
"Auto"
| "ExportedGlobal"
| ...
検索条件に含めるデータ要素のストレージ クラスの名前。次の値のいずれかとして指定します。
"Auto"
"ExportedGlobal"
"ImportedExtern"
"ImportedExternPointer"
使用可能なストレージ クラスのリストは、指定したカテゴリによって異なります。
Identifier
— コード識別子
文字ベクトル | string スカラー
コード ジェネレーターが生成されたコード内でデータ要素を識別するために使用する名前。"Auto"
以外のストレージ クラスに適用されます。
データ型: char
| string
出力引数
modelElementsFound
— 見つかったモデル要素
ハンドル配列 | string 配列
検出されたモデル要素。指定した要素カテゴリに応じて string 配列またはハンドル配列として返されます。
要素カテゴリ | 返されるオブジェクトのタイプ |
---|---|
"Inports" 、"Outports" 、"States" | ブロック ハンドル |
"Signals" | 端子ハンドル |
"DataStores" | ブロック ハンドル |
"ModelParameters" | モデル パラメーター名 |
"ModelParameterArguments" | モデル パラメーター引数名 |
バージョン履歴
R2020b で導入R2022b: 関数 find
から個別に返されるモデル パラメーターおよびモデル パラメーター引数
関数 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 コマンド
次の 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)