ラインの伝搬ラベルの存在確認
16 views (last 30 days)
Show older comments
特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。
0 Comments
Accepted Answer
Atsushi Ueno
on 25 Mar 2022
Edited: Atsushi Ueno
on 28 Mar 2022
>特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。
上記リンク先の"代替"方法「ライン(信号線)をクリックしてラベルを"<"に変更する」が最も手数が少なく便利です。
(追記) ラインの信号源となるブロックのプロパティ 'PropagatedSignals' を参照する事で特定のラインに伝搬ラベルが存在しているかどうかをプログラム的に確認できます。(詳細はコメント参照)
2 Comments
Atsushi Ueno
on 28 Mar 2022
Edited: Atsushi Ueno
on 28 Mar 2022
伝搬ラベルを表示し目視で確認するのではなく、プログラム的に伝搬ラベルの有無を確認したいという意図を理解しました。質問の回答は「信号源のオブジェクトプロパティ '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
More Answers (0)
See Also
Categories
Find more on String in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!