目录
sprank函数的功能是求取矩阵的结构秩。
语法
r = sprank(A)
说明
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,因为列互为倍数。
结构秩
一个矩阵的结构秩是具有相同非零模式的所有矩阵的最大秩。如果一个矩阵可以置换,使得对角线有非零项,则该矩阵具有满结构秩。
结构秩是一个矩阵的秩的上限,因此它满足 sprank(A) >= rank(full(A))。
关于其他函数的结构秩的一些定义如下:
-
结构秩是“最大匹配”,它与 Dulmage-Mendelsohn 分解的关系为 sprank(A) = sum(dmperm(A)>0)。
-
与 dmperm 不同,matchpairs 函数在计算匹配时也会考虑权重。您可以通过将矩阵转换为 1 和 0 并将与 matchpairs(double(A~=0),0,'max') 匹配的权重最大化,来计算最大匹配。结构秩则等于匹配的数量。