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

20 Ansichten (letzte 30 Tage)
kinom
kinom am 25 Mär. 2022
Bearbeitet: Atsushi Ueno am 28 Mär. 2022
特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 25 Mär. 2022
Bearbeitet: Atsushi Ueno am 28 Mär. 2022
>特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。
上記リンク先の"代替"方法「ライン(信号線)をクリックしてラベルを"<"に変更する」が最も手数が少なく便利です。
(追記) ラインの信号源となるブロックのプロパティ 'PropagatedSignals' を参照する事で特定のラインに伝搬ラベルが存在しているかどうかをプログラム的に確認できます。(詳細はコメント参照)
  2 Kommentare
kinom
kinom am 27 Mär. 2022
すみません、やりたいことを正確に伝えられていませんでした。
スクリプトを使い、一番上の階層の出力ラインに対し 伝搬ラベルが存在する場合には何もせず、 伝搬ラベルが存在しない場合にはラベルを付与する、というようなことをしたいのです。
Atsushi Ueno
Atsushi Ueno am 28 Mär. 2022
Bearbeitet: Atsushi Ueno am 28 Mär. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Produkte


Version

R2015b

Community Treasure Hunt

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

Start Hunting!