MATLAB 中具有稀疏性的任何 C++/C 等效函数
Any C++/C equivalent function with sparse in MATLAB
我尝试将 m
代码移植到 c
或 cpp
。
在我的代码中有一行
A = sparse(I,J,IA,nR,nC);
将行索引 I
、列索引 J
和数据 IA
转换为大小为 nR x nC
.[=20= 的稀疏矩阵 A
]
是否有任何与 C++ 或 C 等效的代码?
在全矩阵中复制结果的朴素算法是
double *A;
A = malloc(sizeof(double)*nR*nC);
memset(A, 0, sizeof(double));
for(k=0; k<size_of_IA; k++)
A[I[k]*nC + J[k]] += IA[k];
注意,如果有共同索引,该值不会被覆盖,而是累加。
Eigen 是一个包含稀疏矩阵的 C++ 数学矩阵库的示例。它重载了运算符,让它感觉像是一个内置功能。
有很多 C 和 C++ 矩阵库。 None 作为 std
的一部分发布,也没有内置任何内容。
写一个好的稀疏矩阵库会很困难;你最好的选择是找到一个预先写好的。推荐题跑题了
我尝试将 m
代码移植到 c
或 cpp
。
在我的代码中有一行
A = sparse(I,J,IA,nR,nC);
将行索引 I
、列索引 J
和数据 IA
转换为大小为 nR x nC
.[=20= 的稀疏矩阵 A
]
是否有任何与 C++ 或 C 等效的代码?
在全矩阵中复制结果的朴素算法是
double *A;
A = malloc(sizeof(double)*nR*nC);
memset(A, 0, sizeof(double));
for(k=0; k<size_of_IA; k++)
A[I[k]*nC + J[k]] += IA[k];
注意,如果有共同索引,该值不会被覆盖,而是累加。
Eigen 是一个包含稀疏矩阵的 C++ 数学矩阵库的示例。它重载了运算符,让它感觉像是一个内置功能。
有很多 C 和 C++ 矩阵库。 None 作为 std
的一部分发布,也没有内置任何内容。
写一个好的稀疏矩阵库会很困难;你最好的选择是找到一个预先写好的。推荐题跑题了