colperm
基于非零项计数的稀疏列置换
语法
j = colperm(S)
说明
j = colperm(S)
生成置换向量 j
,根据非零项数升序对 S(:,j)
的列进行排序。这有时可用于对 LU 分解进行预先排序;在这种情况下,请使用 lu(S(:,j))
。
如果 S
是对称矩阵,则 j
=
colperm(S)
生成置换矩阵 j
,根据非零项数升序对 S(j,j)
的行和列两者都进行排序。如果 S
是正定矩阵,则这有时可用于对乔列斯基分解进行预先排序;在这种情况下,请使用 chol(S(j,j))
。
示例
100
×100
箭尖矩阵
n = 100; A = [ones(1,n); ones(n-1,1) speye(n-1,n-1)]
包含全满的第一行和第一列。其 LU 分解 lu(A)
也几乎是全满的。语句
j = colperm(A)
返回 j
=
[2:n
1]
。因此 A(j,j)
将该全满的行和列移到底部和后部,且 lu(A(j,j))
具有与 A
自身相同的非零结构体。
另一方面,布基球示例
B = bucky
在每行和每列中恰好有三个非零元素,这样 j = colperm(B)
是单位置换,对于降低后续分解的填充元没有任何作用。
算法
算法涉及对每列中的非零项数进行排序。
扩展功能
版本历史记录
在 R2006a 之前推出