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

조회 수: 13 (최근 30일)
kinom
kinom 2022년 3월 25일
편집: Atsushi Ueno 2022년 3월 28일
特定のラインに伝搬ラベルが存在しているかどうかを確認する方法はありますか。

채택된 답변

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!