Main Content

sprank

结构秩

说明

示例

r = sprank(A) 计算稀疏矩阵 A结构秩

示例

全部折叠

计算 2×4 矩阵的结构秩。

A = [1 0 2 0
     2 0 4 0];
A = sparse(A);
rs = sprank(A)
rs = 2

将结构秩与常规秩计算进行比较。

rf = rank(full(A))
rf = 1

对于此矩阵,结构秩是 2,因为两列非零。但是,矩阵的实际秩是 1,因为列互为倍数。

输入参数

全部折叠

输入矩阵,指定为稀疏矩阵。

数据类型: double
复数支持:

详细信息

全部折叠

结构秩

一个矩阵的结构秩是具有相同非零模式的所有矩阵的最大秩。如果一个矩阵可以置换,使得对角线有非零项,则该矩阵具有满结构秩。

结构秩是一个矩阵的秩的上限,因此它满足 sprank(A) >= rank(full(A))

关于其他函数的结构秩的一些定义如下:

  • 结构秩是“最大匹配”,它与 Dulmage-Mendelsohn 分解的关系为 sprank(A) = sum(dmperm(A)>0)

  • dmperm 不同,matchpairs 函数在计算匹配时也会考虑权重。您可以通过将矩阵转换为 1 和 0 并将与 matchpairs(double(A~=0),0,'max') 匹配的权重最大化,来计算最大匹配。结构秩则等于匹配的数量。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

|