- Scilab Help
 - Control Systems - CACSD
 - Linear System Representation
 - abcd
 - arma
 - arma2p
 - arma2ss
 - armac
 - bloc2ss
 - cont_frm
 - des2ss
 - des2tf
 - frep2tf
 - lsslist
 - markp2ss
 - pfss
 - pol2des
 - sm2des
 - sm2ss
 - ss2des
 - ss2ss
 - ss2tf
 - ss2zp
 - ssprint
 - ssrand
 - sysconv
 - sysdiag
 - syslin
 - syssize
 - systmat
 - tf2des
 - tf2ss
 - tf2zp
 - trfmod
 - zp2ss
 - zp2tf
 - zpk
 - zpk2ss
 - zpk2tf
 
Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
sysdiag
Creates a block diagonal matrix from provided inputs. Block diagonal system connection. (obsolete)
Syntax
r = sysdiag(a1,a2,...,an)
Arguments
- ai
 subsystems (i.e. gains, or linear systems in state-space or transfer form).
constant, boolean, polynomial or rational matrices of any size.
- r
 a matrix with a1, a2, a3, ... on the diagonal.
Description
![]()  | sysdiag() is obsolete. Please use blockdiag() instead. | 
Returns the block-diagonal system made with subsystems put in the main diagonal.
Given the inputs A, B and C,
            the output will have these matrices arranged on the diagonal:
            
.
![]()  | If all the input matrices are square, the output is known as a
            block diagonal matrix.  | 
![]()  | Used in particular for system interconnections.  | 
For boolean matrices sysdiag() always returns a zero one matrix in
            the corresponding block ("true" values are replaced by 1 and "false" value by 0).
Examples
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)
See also
History
| Version | Description | 
| 6.1.0 | sysdiag() is declared obsolete. | 
| Report an issue | ||
| << sysconv | Linear System Representation | syslin >> | 

