ラインの伝搬ラベルの存在確認

13 次查看(过去 30 天)
kinom
kinom 2022-3-25
特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2022-3-25
编辑:Atsushi Ueno 2022-3-28
>特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。
上記リンク先の"代替"方法「ライン(信号線)をクリックしてラベルを"<"に変更する」が最も手数が少なく便利です。
(追記) ラインの信号源となるブロックのプロパティ 'PropagatedSignals' を参照する事で特定のラインに伝搬ラベルが存在しているかどうかをプログラム的に確認できます。(詳細はコメント参照)
  2 个评论
kinom
kinom 2022-3-27
すみません、やりたいことを正確に伝えられていませんでした。
スクリプトを使い、一番上の階層の出力ラインに対し 伝搬ラベルが存在する場合には何もせず、 伝搬ラベルが存在しない場合にはラベルを付与する、というようなことをしたいのです。
Atsushi Ueno
Atsushi Ueno 2022-3-28
编辑:Atsushi Ueno 2022-3-28
伝搬ラベルを表示し目視で確認するのではなく、プログラム的に伝搬ラベルの有無を確認したいという意図を理解しました。質問の回答は「信号源のオブジェクトプロパティ 'PropagatedSignals' を参照する事」になります。'PropagatedSignals' はラインのプロパティではなく、ラインの信号源ブロックのプロパティです。
上記リンク先のスクリプトを改造しました。信号のラベルと伝搬ラベルの有無の組み合わせに対して下記の様に対応します。
num = 0;
% モデル最上位層における出力ラインのハンドルを取得
signalLines = find_system(bdroot,'SearchDepth','1','FindAll','on','type','line');
for i = 1:length(signalLines)
srchandle = get(signalLines(i),'SrcPortHandle'); % 出力ラインのソースハンドルを取得
if isempty(get_param(srchandle,'PropagatedSignals')) % 伝搬ラベルが存在しない場合
set_param(signalLines(i), 'Name', ['temp' num2str(num)]); % ラベルを付与する
num = num + 1; % ラベルが重複しない様連番にする
end
end

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 String 的更多信息

标签

产品


版本

R2015b

Community Treasure Hunt

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

Start Hunting!