Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
sysdiag
ブロック対角システム接続
呼び出し手順
r=sysdiag(a1,a2,...,an)
説明
主対角項にサブシステムを配置したブロック対角システムを返します.
- ai
サブシステム (すなわち,ゲインまたは状態空間表現または 伝達関数表現の線形システム)
任意の大きさの定数, 論理値, 多項式または有理数行列
- r
a1, a2, a3, ... を対角項に有する行列
説明
入力A
, B
および
C
を指定すると,
出力はこれらの行列を以下のように対角項に配置したものになります:
.
入力行列が全て正方の場合, 出力は
ブロック対角行列として
知られたものになります. |
特にシステムの相互接続で使用されます. |
この関数以外では,
ブロック対角疎行列.を
構築するためにsparse()
プリミティブも使用できます.
論理値行列の場合,sysdiag()
は常に
対応するブロックに 0 または 1を要素とする行列
("true"値は1,"false"値は0で置換されます)を返します.
sysdiag()
は文字列からなる
行列を配置する際に使用できませんが,
オーバーロードすることが可能です
(参照: オーバーローディング).
注意
引数の数は最大17個に制限されています.
例
s=poly(0,'s') sysdiag(rand(2,2),1/(s+1),[1/(s-1);1/((s-2)*(s-3))]) sysdiag(tf2ss(1/s),1/(s+1),[1/(s-1);1/((s-2)*(s-3))])
// a matrix of doubles: A=[1 0; 0 1], B=[3 4 5; 6 7 8], C=7 D=sysdiag(A,B,C) // sysdiag([%t %f; %f %t], eye(2,2), ones(3,3)) // a polynomial matrix: s=%s; sysdiag([s 4*s; 4 s^4], [1 s^2 s+2; 3*s 2 s^2-1]) // a rational matrix: sysdiag([1/s 2*s/(4*s+3)], [s; 4; 1/(s^2+2*s+1)]) // a block diagonal sparse matrix: S=sysdiag([1 2; 3 4], [5 6; 7 8], [9 10; 11 12], [13 14; 15 16]) S=sparse(S)
参照
Report an issue | ||
<< sysconv | signalprocessing | trfmod >> |