Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.5.1 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
However, this page did not exist in the previous stable version.

Scilab Help >> Elementary Functions > Signal processing > sysdiag


Create a block diagonal matrix from provided inputs or block diagonal system connection

Calling Sequence



Returns the block-diagonal system made with subsystems put in the main diagonal


subsystems (i.e. gains, or linear systems in state-space or transfer form)

constant, boolean, polynomial or rational matrices of any size


a matrix with a1, a2, a3, ... on the 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.

Beside this function, you can also use sparse() primitive to build a block diagonal sparse matrix.

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).

sysdiag() cannot be used to arrange matrices made of character strings, but you can overload it (see: overloading).


At most 17 arguments.


// a matrix of doubles: 
A=[1 0; 0 1], B=[3 4 5; 6 7 8], C=7
sysdiag([%t %f; %f %t], eye(2,2), ones(3,3))
// a polynomial matrix: 
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])

See Also

  • brackets — ([,]) left and right brackets
  • insertion — partial variable assignation or modification
  • feedback — feedback operation
  • diag — diagonal including or extracting
  • bdiag — block diagonalization, generalized eigenvectors
  • sparse — sparse matrix definition
  • repmat — Replicate and tile an array
Report an issue
<< sysconv Signal processing trfmod >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 13:46:48 CEST 2014