Simulink モデル内で、ブロックごとに接続されている Line にアクセスする方法はありますか?

31 次查看(过去 30 天)
Simulink モデル内で、ブロックごとに接続されている Line にアクセスし、その接続情報を得る方法を教えてください。

采纳的回答

MathWorks Support Team
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 个)

类别

Help CenterFile Exchange 中查找有关 プログラムによるモデル編集 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!