通过复制三元组格式的稀疏矩阵的下三角来创建完整的对称矩阵
create the complete symmetric matrix by copying the lower triangular of a sparse matrix in triplet format
如主题行所示,将稀疏矩阵的下三角部分复制到上三角部分并完成矩阵条目以创建对称稀疏矩阵的最有效方法是什么?
假设我有三元组 I、J、X 用于下三角形,包括对角线。我正在从一个商业程序中读取这些数组,出于存储 space 的原因,我相信它们只存储下三角部分。
好吧,我很快就会开始测试不同的选项,但想看看其他人以前是否遇到过这种情况。
您可以使用 sparse:
idx = I ~= J; %index of nondiagonals
result = sparse([I;J(idx)], [J;I(idx)], [X;X(idx)]);
因为 sparse
将 X
中具有重复下标的元素加在一起 I
和 J
我们在连接向量时排除了对角线元素。
如主题行所示,将稀疏矩阵的下三角部分复制到上三角部分并完成矩阵条目以创建对称稀疏矩阵的最有效方法是什么?
假设我有三元组 I、J、X 用于下三角形,包括对角线。我正在从一个商业程序中读取这些数组,出于存储 space 的原因,我相信它们只存储下三角部分。
好吧,我很快就会开始测试不同的选项,但想看看其他人以前是否遇到过这种情况。
您可以使用 sparse:
idx = I ~= J; %index of nondiagonals
result = sparse([I;J(idx)], [J;I(idx)], [X;X(idx)]);
因为 sparse
将 X
中具有重复下标的元素加在一起 I
和 J
我们在连接向量时排除了对角线元素。