Main Content

bandwidth

矩阵的上下带宽

说明

示例

B = bandwidth(A,type) 返回 type 指定的矩阵 A带宽。将 type 指定为下带宽 'lower' 或指定为上带宽 'upper'

示例

[lower,upper] = bandwidth(A) 返回矩阵 A 的下带宽 lower 和上带宽 upper

示例

全部折叠

创建一个 6×6 的下三角矩阵。

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

通过将 type 指定为 'lower' 来计算 A 的下带宽。结果为 5,原因是主对角线下方的每个对角线都有非零元素。

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

通过将 type 指定为 'upper' 来计算 A 的上带宽。结果为 0,原因是主对角线上方没有非零元素。

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

创建一个 100×100 的稀疏分块矩阵。

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

查看 B 左上角一个 10×10 部分的元素。

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 包含 4×4 个由 1 组成的数据块,每个块都以主对角线为中心。

通过指定两个输出参量来计算 B 的下带宽和上带宽。

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

输入参数

全部折叠

输入矩阵,指定为一个二维数值矩阵。A 可以是满矩阵或稀疏矩阵。

数据类型: single | double
复数支持:

带宽类型,指定为 'lower''upper'

  • 为下带宽(在主对角线下方)指定 'lower'

  • 为上带宽(在主对角线上方)指定 'upper'

输出参量

全部折叠

下带宽或上带宽,以非负整数标量形式返回。

  • 如果 type'lower',则 0Bsize(A,1)-1

  • 如果 type'upper',则 0Bsize(A,2)-1

下带宽,以非负整数标量形式返回。lower 处于 0lowersize(A,1)-1 范围内。

上带宽,以非负整数标量形式返回。upper 处于 0uppersize(A,2)-1 范围内。

详细信息

全部折叠

上带宽和下带宽

矩阵的上带宽和下带宽是通过求包含非零值的最远一个对角线(分别在主对角线上方或下方)测得的。

即,对于包含元素 Aij 的矩阵 A:

  • 上带宽 B1 是最小数,这样无论何时 ji>B1Aij=0

  • 下带宽 B2 是最小数,这样无论何时 ij>B2Aij=0

请注意,该测量值允许波段中的中间对角线全部为零,它关注的是包含非零值的最远一个对角线。按照惯例,空矩阵的上带宽和下带宽都为零。

提示

  • 使用 isbanded 函数测试矩阵是否位于特定的下带宽和上带宽范围内。

扩展功能

版本历史记录

在 R2014a 中推出

另请参阅

| | | |