Main Content

bandwidth

Lower and upper matrix bandwidth

Description

B = bandwidth(A,type) returns the bandwidth of matrix A specified by type. Specify type as 'lower' for the lower bandwidth, or 'upper' for the upper bandwidth.

example

[lower,upper] = bandwidth(A) returns the lower bandwidth, lower, and upper bandwidth, upper, of matrix A.

example

Examples

collapse all

Create a 6-by-6 lower triangular matrix.

A = tril(magic(6))
A = 6×6

    35     0     0     0     0     0
     3    32     0     0     0     0
    31     9     2     0     0     0
     8    28    33    17     0     0
    30     5    34    12    14     0
     4    36    29    13    18    11

Find the lower bandwidth of A by specifying type as 'lower'. The result is 5 since every diagonal below the main diagonal has nonzero elements.

B = bandwidth(A,'lower')
B = 
5

Find the upper bandwidth of A by specifying type as 'upper'. The result is 0 since there are no nonzero elements above the main diagonal.

B = bandwidth(A,'upper')
B = 
0

Create a 100-by-100 sparse block matrix.

B = kron(speye(25),ones(4));

View a 10-by-10 section of elements from the top left of B.

full(B(1:10,1:10))
ans = 10×10

     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     1     1     1     1     0     0
     0     0     0     0     0     0     0     0     1     1
     0     0     0     0     0     0     0     0     1     1

B has 4-by-4 blocks of ones centered on the main diagonal.

Find both the lower and upper bandwidths of B by specifying two output arguments.

[lower,upper] = bandwidth(B)
lower = 
3
upper = 
3

Input Arguments

collapse all

Input matrix, specified as a 2-D numeric matrix. A can be either full or sparse.

Data Types: single | double
Complex Number Support: Yes

Bandwidth type, specified as 'lower' or 'upper'.

  • Specify 'lower' for the lower bandwidth (below the main diagonal).

  • Specify 'upper' for the upper bandwidth (above the main diagonal).

Output Arguments

collapse all

Lower or upper bandwidth, returned as a nonnegative integer scalar.

  • If type is 'lower', then 0 ≤ B ≤ size(A,1)-1.

  • If type is 'upper', then 0 ≤ B ≤ size(A,2)-1.

Lower bandwidth, returned as a nonnegative integer scalar. lower is in the range 0 ≤ lower ≤ size(A,1)-1.

Upper bandwidth, returned as a nonnegative integer scalar. upper is in the range 0 ≤ upper ≤ size(A,2)-1.

More About

collapse all

Tips

  • Use the isbanded function to test if a matrix is within a specific lower and upper bandwidth.

Extended Capabilities

expand all

Version History

Introduced in R2014a

expand all

See Also

| | | |