我正在尝试编写一个函数,将维度为 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;
}
列数组应包含值/行数组中列的第一个元素的索引,但未能实现
学习Sparse_matrix#Storage等,也有例子