在 C 中将稀疏矩阵转换为 CSC 格式

问题描述 投票:0回答:1

我正在尝试编写一个函数,将维度为 mxn 的稀疏矩阵转换为压缩的 CSC 格式。输出似乎适用于行向量和值向量,但是我不确定列指针数组应该如何工作。

void updateCSC(int m, int n, int talon[m][n], int cscRows[16], int cscVals[16], int cscPt[100]) {
    int counter = 0;
    int flag = 0;

    for (int j = 0; j < n + 1; j++){
        flag = 0;
        for (int i = 0; i < m; i++){
            if (talon[i][j] != 0){
                cscVals[counter] = talon[i][j];
                cscRows[counter] = i;
                counter++;
                if (flag == 0){
                    cscPt[j] = counter;
                    flag++;
                }
            }
        }
    }
    //cscPt[0] = 0;
}

列数组应包含值/行数组中列的第一个元素的索引,但未能实现

c matrix compression csc
1个回答
0
投票

学习Sparse_matrix#Storage等,也有例子

© www.soinside.com 2019 - 2024. All rights reserved.