使用C+的倍频程API构造稀疏矩阵+; 我试图用八度C++来解决稀疏线性系统。我遇到的问题是,我找不到一种有效的方法来构造稀疏线性系统 SparseMatrix A; int dim,nnz; // dim = dimension // nnz = number of non-zero entry in the matrix A /* somehow assign the values for dim and nnz */ A = SparseMatrix ( dim, dim, nnz ); // row index array int *pidx_r = new int[nnz]; // col index array int *pidx_c = new int[nnz]; // value array double *pval = new double[nnz]; // total number of nonzero elements int tot; /* somehow assign values for pidx_r, pidx_c, pval and tot */ for ( int i = 0; i < tot; i++ ) A ( pidx_r[i], pidx_c[i] ) = pval[i]; SparseMatrix A; int-dim,nnz; //尺寸=尺寸 //nnz=矩阵A中非零项目的数量 /* 以某种方式指定dim和nnz的值 */ A=稀疏矩阵(dim,dim,nnz); //行索引数组 int*pidx_r=新的int[nnz]; //列索引数组 int*pidx_c=新的int[nnz]; //值数组 双精度*pval=新双精度[nnz]; //非零元素的总数 int tot; /* 以某种方式为pidx_r、pidx_c、pval和tot赋值 */ 对于(int i=0;i我刚刚找到本教程,第一段中的方法看起来像你所寻找的。

使用C+的倍频程API构造稀疏矩阵+; 我试图用八度C++来解决稀疏线性系统。我遇到的问题是,我找不到一种有效的方法来构造稀疏线性系统 SparseMatrix A; int dim,nnz; // dim = dimension // nnz = number of non-zero entry in the matrix A /* somehow assign the values for dim and nnz */ A = SparseMatrix ( dim, dim, nnz ); // row index array int *pidx_r = new int[nnz]; // col index array int *pidx_c = new int[nnz]; // value array double *pval = new double[nnz]; // total number of nonzero elements int tot; /* somehow assign values for pidx_r, pidx_c, pval and tot */ for ( int i = 0; i < tot; i++ ) A ( pidx_r[i], pidx_c[i] ) = pval[i]; SparseMatrix A; int-dim,nnz; //尺寸=尺寸 //nnz=矩阵A中非零项目的数量 /* 以某种方式指定dim和nnz的值 */ A=稀疏矩阵(dim,dim,nnz); //行索引数组 int*pidx_r=新的int[nnz]; //列索引数组 int*pidx_c=新的int[nnz]; //值数组 双精度*pval=新双精度[nnz]; //非零元素的总数 int tot; /* 以某种方式为pidx_r、pidx_c、pval和tot赋值 */ 对于(int i=0;i我刚刚找到本教程,第一段中的方法看起来像你所寻找的。,c++,octave,sparse-matrix,C++,Octave,Sparse Matrix,上面的代码描述了我的幼稚实现,它效率极低,我希望应该有一些成员函数将值大量插入稀疏矩阵 例如,A=SparseMatrix(pidx_r,pidx_c,pval) 但是,我找不到任何这样做的成员函数。至少,天真的实现似乎是唯一的方法 我已经准备好了某种格式的矩阵,我想问一下,有没有一种方法可以有效地使用C++的八阶API来构造稀疏矩阵? < p>我刚刚找到本教程,第一段中的方法看起来像你所寻找的。 @wirew0rm 链接中提到的方法是琐碎和低效的 事实上,我已经找到了一个基本上修改继承成员Sp

上面的代码描述了我的幼稚实现,它效率极低,我希望应该有一些成员函数将值大量插入稀疏矩阵

例如,
A=SparseMatrix(pidx_r,pidx_c,pval)

但是,我找不到任何这样做的成员函数。至少,天真的实现似乎是唯一的方法


我已经准备好了某种格式的矩阵,我想问一下,有没有一种方法可以有效地使用C++的八阶API来构造稀疏矩阵?

< p>我刚刚找到本教程,第一段中的方法看起来像你所寻找的。 @wirew0rm 链接中提到的方法是琐碎和低效的

事实上,我已经找到了一个基本上修改继承成员SparSematrix Rep内容的解决方案

尽管文档中指出这是不安全的,不推荐使用,但性能得到了显著提高