このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
モデルの階層構造内の参照モデルと模型ブロックの検索
变体
オプションは削除される予定です。代わりにMatchFilter
を使用してください。详细については,互换性についての考虑事项を参照してください。
指定されたモデルによって参照されるすべてのモデルの参照モデルおよび模型ブロックを検索します。
load_system('sldemo_mdlref_basic');[myModels,myModelBlks] = find_mdlrefs('sldemo_mdlref_basic'的)
myModels =2 x1细胞{' sldemo_mdlref_counter} {' sldemo_mdlref_basic '}
myModelBlks =3X1细胞{ 'sldemo_mdlref_basic / CounterA'} { 'sldemo_mdlref_basic / CounterB'} { 'sldemo_mdlref_basic / CounterC'}
既定では,関数find_mdlrefs
はまだ読み込まれていないモデルを読み込んでから闭じます。読み込まれているモデルを特定するには,关数find_system
を使用します。
find_mdlrefs ('sldemo_mdlref_depgraph');find_system('类型'那“block_diagram”的)
ANS =为0x1空单元阵列
モデルの階層構造内のすべてのモデルを検索して読み込むには,KeepModelsLoaded
を真的
に設定します。
find_mdlrefs ('sldemo_mdlref_depgraph'那'KeepModelsLoaded',真的);find_system('类型'那“block_diagram”的)
ANS =.7X1细胞{ 'sldemo_mdlref_thermostat'} { 'sldemo_mdlref_heater'} { 'sldemo_mdlref_F2C'} { 'sldemo_mdlref_outdoor_temp'} { 'sldemo_mdlref_house'} { 'sldemo_mdlref_heat2cost'} { 'sldemo_mdlref_depgraph'}
最上位モデルとすべての参照モデルは読み込まれたままになります。sldemo_mdlref_depgraph
を開くと,参照モデルを開いて参照モデルが読み込まれるのを待たずにモデルの階層構造を移動できます。
系统
-システム名,ブロックパス,またはハンドルシステム名,ブロックパス,またはハンドル。文件ベクトル那字符串スカラー,または数値スカラーとして指定します。
システムは基金ファイル,MDLファイル,模型ブロック,または子系统ブロックでなければなりません。
ファイル名を指定するときに,ファイルの拡张子を含めないでください。
データ型:双
|字符
|字符串
オプションのコンマ区切りされた名称,价值
の引数ペアを指定します。ここで,的名字
は引数名,价值
は対応する値です。的名字
は引用符で囲まなければなりません。Name1, Value1,…,的家
のように,复数の名前と値のペアの引数を任意の顺序で指定できます。
refModels = find_mdlrefs (topmodel, KeepModelsLoaded,真的,ReturnTopModelAsLastElement,假)
AllLevels
-検索するレベル真的
または1
(既定値)|错误的
または0.
検索するレベル。“AllLevels”
と数値または逻辑1
(真的
)または0.
(错误的
)で构成されるコンマ区切りのペアとして指定します。
真的
——指定された系统
のモデルの階層構造内のすべての模型ブロックを検索します。
错误的
- 最上位レベルのシステムのみを検索します。
データ型:逻辑
KeepModelsLoaded
-モデルを読み込まれたままにするオプション错误的
または0.
(既定値)|真的
または1
モデルを読み込まれたままにするオプション。'KeepModelsLoaded'
と数値または逻辑1
(真的
)または0.
(错误的
)で构成されるコンマ区切りのペアとして指定します。
既定では,关数はまだ読み込まれていないモデルを読み込んでから闭じます。モデルを読み込んだままにするには,この引数を真的
に设定します。モデルを読み込んだままにすると,モデルの検索后にモデルを操作する予定がある场合に役立ちます。
データ型:逻辑
IncludeProtectedModels
-保护モデルを含めるためのオプション错误的
または0.
(既定値)|真的
または1
保護モデルを検索結果に含めるオプション。'IncludeProtectedModels'
と数値または逻辑1
(真的
)または0.
(错误的
)で构成されるコンマ区切りのペアとして指定します。
この設定は,返される参照モデルのリストにのみ影響します。返される模型ブロックのリストには影响しません。
データ型:逻辑
变体
-バリアントモデルを含めるオプション'ActivePlusCodeVariants'
(既定値)|“ActiveVariants”
|'AllVariants'
バリアントモデルを検索结果に含めるオプション。“变体”
と'ActivePlusCodeVariants'
那“ActiveVariants”
,または'AllVariants'
で構成されるコンマ区切りのペアとして指定します。
'ActivePlusCodeVariants'
- シミュレーション内でアクティブであり,生成されたコードの一部である变体子系统内のすべてのバリアントモデルを含めます。
“ActiveVariants”
-变体子系统ブロック内のアクティブなバリアントモデルを含めます。
'AllVariants'
-变体子系统ブロック内のすべてのバリアントモデルを含めます。
メモ
この検索条件は,[バリアント制御モード]が表达
または标签
に设定されている变体子系统ブロックにのみ适用されます。MatchFilter
オプションを指定して关数find_mdlrefs
を使用すると,すべてのタイプのバリアントブロックについて动作します。
データ型:字符
|字符串
区分大小写
-検索时に大文字小文字を区别するオプション真的
(既定値)|错误的
検索時に大文字小文字を区別するオプション。大文字小文字を区別する検索の場合は真的
,大文字小文字を区别しない検索の场合は错误的
として指定します。
データ型:逻辑
FollowLinks
-ライブラリリンクに従って検索するオプション错误的
(既定値)|真的
ライブラリリンクに従って検索するオプション。真的
または错误的
として指定します。真的
の场合,検索はライブラリブロックへリンクされたものを含みます。
データ型:逻辑
IncludeCommented
-コメント付きブロックを検索に含めるオプション真的
(既定値)|错误的
コメント付きブロックを検索に含めるオプション。真的
または错误的
として指定します。
データ型:逻辑
LookUnderMasks
-マスクされたブロックを検索するオプション'全部'
(既定値)|'没有任何'
|“功能”
|“图形”
マスクされたブロックを検索するオプション。次として指定します。
'全部'
- マスクされたすべてのブロック内を検索します。
'没有任何'
- マスクされたシステムでの検索を回避します。
“功能”
- ダイアログをもたないマスクサブシステムも検索します。
“图形”
——ワークスペースまたはダイアログをもたないマスクサブシステムも検索します。
データ型:字符
|字符串
MatchFilter
-要素に一致させる关数ハンドルブロック,システム,ライン,端子,注釈など,検索内の要素に一致させる関数ハンドル。MatchFilter
を使用して,検索で要素を含めるべきか,スキップすべきかどうかを決定します。
名前付き関数はMATLAB®プログラムファイル内で定義されていなければなりません。关节有关部は要素のハンドルを入力として取り、2 つの出力を返します。
功能[匹配,剪枝] = FUNC(元件)
入力元素
は処理されているブロックのハンドルです。
1つ目の出力匹配
は逻辑値です。错误的
の場合,検索で要素がスキップされます。
2つ目の出力修剪
は元素
がサブシステムである場合にのみ適用される,オプションの逻辑値です。既定値は错误的
です。この値が真的
に設定されている場合,サブシステム全体が検索対象から除外されます。
次に例を示します。MatchFilter
を使用して,フィルター関数initFcnMdlBlocks
を使用してInitFcn
が定义されたモデル内のすべてのモデルブロックを検索します。
功能匹配= initFcnMdlBlocks(手柄)匹配=〜的isEmpty(get_param(手柄,“InitFcn”));结尾
让addpath(完整文件(matlabroot,“例子”那“金宝appsimulink_variants”那'主要的'));模型='slexVariantMdlRefCondProp';load_system(模型);[模型,块] = find_mdlrefs(型号,“MatchFilter”@initFcnMdlBlocks)
バリアント:金宝appSimulink中は,マッチフィルター关数金宝appSimulink.match.activeVariants
と金宝appSimulink.match.codeCompileVariants
を提供します。これらの関数を使用して,アクティブなバリアントとコードコンパイルのバリアントブロックを検索できます。これを行うには,モデルをコンパイルして,適切なMatchFilter
オプションを适用します。
金宝appSimulink.match.activeVariants
- モデルのコンパイル后にシミュレーションでアクティブなブロックと一致
金宝appSimulink.match.codeCompileVariants
- モデルのコンパイル后に生成されたコードの一部であるブロックと一致
たとえば,金宝appSimulink.match.activeVariants
オプションを使用して,モデルでアクティブなバリアントを検索します。
让addpath(完整文件(matlabroot,“例子”那“金宝appsimulink_variants”那'主要的'));模型='slexVariantMdlRefCondProp';load_system(模型);set_param(模型,“SimulationCommand”那“更新”);[模型,块] = find_mdlrefs(型号,“MatchFilter”,@ 金宝appSimulink.match.activeVariants);
たとえば,金宝appSimulink.match.codeCompileVariants
オプションを使用して,生成されたÇコードの一部であるバリアントの选択肢を検出します。
让addpath(完整文件(matlabroot,“例子”那“金宝appsimulink_variants”那'主要的'));load_system('slexVariantMdlRefCondProp');assignin (“基地”那“VSS_MODE”2);slexVariantMdlRefCondProp([],[],[],“compileForRTW”);(模型、块)= find_mdlrefs ('slexVariantMdlRefCondProp'那“MatchFilter”,@ 金宝appSimulink.match.codeCompileVariants);slexVariantMdlRefCondProp([],[],[],'学期');
IncludeCommented
-コメント付きブロックを含めるオプション错误的
または0.
(既定値)|真的
または1
コメント付きブロックを検索结果に含めるオプション。'IncludeCommented'
と数値または逻辑1
(真的
)または0.
(错误的
)で构成されるコンマ区切りのペアとして指定します。
データ型:逻辑
ReturnTopModelAsLastElement
-指定されたシステムを含めるオプション真的
または1
(既定値)|错误的
または0.
指定されたシステムを検索結果に含めるオプション。“ReturnTopModelAsLastElement”
と数値または逻辑1
(真的
)または0.
(错误的
)で构成されるコンマ区切りのペアとして指定します。
既定では,参照モデルの返されたリスト内の最后の要素は,系统
引数で指定したモデル,ライブラリ,またはサブシステムファイルの名前です。ブロックを指定する场合,最后の要素はブロックを含むファイルの名前です。
データ型:逻辑
find_mdlrefs
の2番目の引数として指定することは推奨されないR2020b以降は非推奨
关节有关部find_mdlrefs
では,モデルの階層構造のすべてのレベルを検索するかどうかを指定する方法が2つあります。どちらの方法でも同じ結果になりますが,追加のオプションを指定できるのは名前と値のペアの手法のみです。
モデルの阶层构造のすべてのレベルを検索するかどうかを指定せずに,逻辑を2番目の引数として使用して名前と値のペアAllLevels
を使用します。
变体
は削除予定R2021a以降は警告
变体
オプションは将来のリリースでfind_mdlrefs
から削除されます。变体
オプションを使用するスクリプトは引き続き動作しますが,警告が出ます。
シミュレーション中またはコード生成中にアクティブである模型ブロックを検索するには,モデルをコンパイルし,関数find_mdlrefs
をMatchFilter
オプションを指定して使用します。
变体
オプションおよびMatchFilter
オプションをもつfind_mdlrefs
の既定の动作R2021aでの动作変更
バリアント:变体
オプションを指定 “しないで” 关数find_mdlrefs
を使用すると,既定で,シミュレーション中またはコード生成中にアクティブである模型ブロックのみが検索に含まれます。
2つのバリアントの選択肢Mdl_Linear_控制器
およびMdl_NonLinear_Controller
をもつ派生模型ブロックをもつモデルについて検讨します。
このコマンドは,モデル内のアクティブな模型ブロックのみを返します。
[myModels,myModelBlks] = find_mdlrefs......(“sldemo_variant_subsystems_modelblocks”的)
myModelBlks = 1×1 cell array {'sldemo_variant_subsystems_modelblocks/Controller/Mdl_NonLinear_Controller'}
MatchFilter:MatchFilter
オプションを指定した关数find_mdlrefs
を使用すると,既定で,アクティブおよび非アクティブなバリアントの选択肢に対するフィルターを适用します。
2つのバリアントの選択肢Mdl_Linear_控制器
およびMdl_NonLinear_Controller
をもつ派生模型ブロックをもつモデルについて検讨します。フィルター関数initFcnMdlBlocks
はInitFcn
コールバックが设定されている模型ブロックをすべて検索します。
功能匹配= initFcnMdlBlocks(手柄)匹配=〜的isEmpty(get_param(手柄,“InitFcn”));结尾
このコマンドは,モデル内のアクティブおよび非アクティブな模型ブロックの両方を返します。
[myModels,myModelBlks] = find_mdlrefs(“sldemo_variant_subsystems_modelblocks”那......“MatchFilter”@initFcnMdlBlocks)
myModels = 3×1单元阵列{‘mdlref_linear_controller}{‘mdlref_nonlinear_controller}{‘sldemo_variant_subsystems_modelblocks} myModelBlks = 2×1单元阵列{' sldemo_variant_subsystems_modelblocks /控制器/ Mdl_Linear_Controller '} {' sldemo_variant_subsystems_modelblocks /控制器/ Mdl_NonLinear_Controller '}
find_mdlrefs
では变体
オプションと共にMatchFilter
を使用することはサポートされません。
このコマンドではエラーが発生します。
find_mdlrefs (bdroot“MatchFilter”@ 金宝appSimulink.match.activeVariants,......“变体”那“ActiveVariants”);
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。