モデル内のすべてのサブシステム参照の参照サブシステムブロック名とSLXファイルパスを取得するにはどうすればよいですか?
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 6 Nov 2025
Réponse apportée : 交感神経優位なあかべぇ
le 7 Nov 2025
MATLAB R2023bを使用しており、トップレベルモデル「topModel.slx」があります。このモデル内には「Subsystem」という名前の「参照サブシステム」ブロックがあり、「参照サブシステム」ファイルは「testRefSubsystem.slx」として保存されます。
トップレベルモデルの名前を渡すことで、ユーザーがすべての "参照サブシステム" ブロックのファイルパスまたはモデル名を取得できる関数はありますか ("参照モデルの名前を返す関数 "find_mdlref" など)?
Réponse acceptée
MathWorks Support Team
le 6 Nov 2025
"Referenced Subsystem" ブロックの名前を取得するには、Subsystem パラメーター "ReferencedSubsystem" で "get_param" 関数を使用できます。パラメータの詳細については、以下を参照してください。
https://www.mathworks.com/help/releases/R2023b/simulink/slref/subsystem.html#f8-894284_sep_mw_2eeb47de-3e19-446f-9f84-f03bc15c7bf2
SLX ファイルへのファイルパスを返すには、関数 "which" を使用できます。機能の詳細については、以下を参照してください。
モデルの名前が「TopModel」であると仮定すると、「find_system」関数を使用して「ReferencedSubsystem」パラメータに入力された「Subsystem」ブロックを検索できます。この例では、"blks" 変数に参照されるサブシステムの名前が格納されます。
load_system('topModel');
blks = find_system('topModel','RegExp','on','BlockType','SubSystem','ReferencedSubsystem','.');
次に、参照されるサブシステムのファイルパスを「which」関数で見つけることができます。この例では、変数 "filePaths" にパスを格納します。
refBlks = get_param(blks,'参照サブシステム');
i = 1の場合:length(refBlks)
filePaths{i} = which(refBlks {i});
終わり
0 commentaires
Plus de réponses (1)
交感神経優位なあかべぇ
le 7 Nov 2025
SubSystem Referenceなど、そのモデルが依存する外部モデルファイル名は、モデルのロードなしに取得することができます。
modelName = 'testModel';
interface = Simulink.MDLInfo.getInterface(modelName);
externalFiles = interface.ExternalFileReference;
refBlocks = externalFiles(strcmp({externalFiles.Type}, 'SubsystemReference_Block'));
subsystemReferenceModelName = {refBlocks.Reference};
0 commentaires
Voir également
Catégories
En savoir plus sur プログラムによるモデル編集 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!