Simulink モデル内で、ブロックごとに接続されている Line にアクセスする方法はありますか?
31 ビュー (過去 30 日間)
古いコメントを表示
Simulink モデル内で、ブロックごとに接続されている Line にアクセスし、その接続情報を得る方法を教えてください。
採用された回答
MathWorks Support Team
2010 年 1 月 15 日
Line の接続情報に直接アクセスする方法はありませんが、次のような方法で、ある Line がどのようなブロック間に接続されているかを知ることができます。
FIND_SYSTEM コマンドで全 Line オブジェクトのハンドルを取得し、任意の Line に対して、'SrcBlockHandle'、'DstBlockHandle' プロパティを取得することで、それぞれ入力側、出力側のブロックのハンドル番号として得ることができます。
また、これらが -1 を示す場合は、その Line オブジェクトの入力側、または出力側には、ブロックが接続されていないことを示します。
例えば、実際の使用例は次のようになります。
%Simulinkモデル vdp.mdl を開きます
open_system('vdp')
%全Lineのハンドル番号を取得します
h = find_system('vdp','FindAll','On','type', 'line');
k = 15; % 15番目のLineに対して...
%入力側、出力側に接続されているブロックのハンドル番号を取得します
hblkSrc = get_param(h(k),'SrcBlockHandle');
hblkDst = get_param(h(k),'DstBlockHandle');
% (結果の表示)
sprintf('LineName: %s Source Block : %s Destination Block: %s', ...
get_param(h(k),'name'),get_param(hblkDst,'Name'), ...
get_param(hblkSrc,'Name'))
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!