给出一个稀疏矩阵,如何通过行和列置换重新排序行和列,使其呈块对角线形式?
行和列排列不一定像反向 Cuthill-McKee 排序那样耦合:http : //www.mathworks.com/help/matlab/ref/symrcm.html? refresh=true 总之,您可以独立执行任何行或列排列.
总体目标是将所有非零元素聚集到对角线上。
我有一个大的稀疏方阵n和n,它的等级略低于n,比方说m.我希望通过某个规则删除行和列来使其成为非单数形式.规则是如果你删除第i行,你也必须删除第i列,这样矩阵总是方形的.这有效地删除了邻接图中的节点.
我的第一个问题是:是否总是存在这样的nm行和列的组合,我可以将其移除,使得m个子矩阵的剩余m在结构上是非奇异的.
我的第二个问题是:是否存在一种有效的算法来通过p非奇异子矩阵获得ap而不会删除过多的行和列
为了提供更多的上下文,我正在处理的矩阵大约是1000乘1000,稀疏度接近0.05
向量容器将对象保存在连续内存中。对于矢量这样的情况,很容易理解。但是,如果它是向量的向量,例如向量>,该向量的向量中的每个向量可以具有不同的长度。它如何管理内存?每次我们插入新向量时,它是否分配固定长度的向量?如果是这样,如果在push_back期间第一个向量超出大小,将会发生什么。它会触发矢量重新分配和复制/移动的完整矢量吗?