ラインの伝搬ラベルの存在確認
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
kinom
el 25 de Mzo. de 2022
Editada: Atsushi Ueno
el 28 de Mzo. de 2022
特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 25 de Mzo. de 2022
Editada: Atsushi Ueno
el 28 de Mzo. de 2022
>特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。
上記リンク先の"代替"方法「ライン(信号線)をクリックしてラベルを"<"に変更する」が最も手数が少なく便利です。
(追記) ラインの信号源となるブロックのプロパティ 'PropagatedSignals' を参照する事で特定のラインに伝搬ラベルが存在しているかどうかをプログラム的に確認できます。(詳細はコメント参照)
2 comentarios
Atsushi Ueno
el 28 de Mzo. de 2022
Editada: Atsushi Ueno
el 28 de Mzo. de 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
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!