- 質問の条件を外れたモデルでは恐らく想定通りに動きません
- 重複したラベルを持つ等の複雑なモデルでは想定通りに動きません
- ブロックを追加する位置(座標)の考慮はしていません
SimulinkのLineのコマンドウィンドウ上からの操作について
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Katsuya Sano
am 15 Jun. 2021
Kommentiert: Katsuya Sano
am 16 Jun. 2021
SimulinkのLineのルーティングをコマンドウィンドウから操作したいです。
図のようにライン名を持った信号線の間にブロックを挿入する場合、どのようなコマンドを記述すれば良いでしょうか。

0 Kommentare
Akzeptierte Antwort
Atsushi Ueno
am 15 Jun. 2021
Bearbeitet: Atsushi Ueno
am 15 Jun. 2021
下記はエラー処理の無い場当たり的なコードです
% 添付モデルを開く(既にモデルを開いている場合は不要)
uiopen('sample.slx',1); % open_system('sample.slx');
hlneAdd2 = find_system(bdroot,'FindAll','on','type','line','name','input'); % 'input'信号を検索
hPrtSrc = get_param(hlneAdd2,'SrcPortHandle'); % 'input'信号の生成元端子を取得
hPrtDst = get_param(hlneAdd2,'DstPortHandle'); % 'input'信号の接続先端子を取得
add_path = [regexprep(getfullname(hlneAdd2),'\w+/[0-9]+$','') 'Delay']; % 追加ブロックのパスを作成
hblkNew = add_block('simulink/Discrete/Delay',add_path ,'DelayLength','1'); % Delayブロックを追加
hPrtNew = get_param(hblkNew,'PortHandles'); % 追加したDelayブロックの入出力端子を取得
delete_line(hlneAdd2); % 'input'信号を削除する
add_line(gcs,hPrtSrc,hPrtNew.Inport); % 'input'生成元と追加ブロックを接続する
add_line(gcs,hPrtNew.Outport,hPrtDst); % 追加ブロックと'input'接続先を接続する
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu プログラムによるモデル編集 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!