Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 特征值:稀疏密积到普通C++;大堆_C++_Matrix_Product_Eigen - Fatal编程技术网

C++ 特征值:稀疏密积到普通C++;大堆

C++ 特征值:稀疏密积到普通C++;大堆,c++,matrix,product,eigen,C++,Matrix,Product,Eigen,我有这样的情况: M是NXN稀疏矩阵,P是纯C++向量,包含NXN矩阵。 我想把产品M*P和结果存储在一个普通的C++数组中,当然,以密集格式。 SparseMatrix m; 双*p; 地图mp(p,dim1,dim2); SparseTimeDenseProduct

我有这样的情况: M是NXN稀疏矩阵,P是纯C++向量,包含NXN矩阵。 我想把产品M*P和结果存储在一个普通的C++数组中,当然,以密集格式。

SparseMatrix m;
双*p;
地图mp(p,dim1,dim2);
SparseTimeDenseProduct>r=m*mp;


我有这个代码,但我不知道是否正确。如果是正确的,我不知道如何“提取”SparseTimeDenseProduct的普通数组。我该怎么做呢?

不需要处理Eigen的内部类。简单地做:

SparseMatrix<double> A(dim1,dim2);
double* p, res;
Map<const MatrixXd> mp(p,dim2,dim3);
Map<MatrixXd> mres(res,dim1,dim3);
mres = A * mp;
SparseMatrix A(dim1,dim2);
双*p,res;
地图mp(p、dim2、dim3);
地图MRE(分辨率、dim1、dim3);
mres=A*mp;

无需处理Eigen的内部类。简单地做:

SparseMatrix<double> A(dim1,dim2);
double* p, res;
Map<const MatrixXd> mp(p,dim2,dim3);
Map<MatrixXd> mres(res,dim1,dim3);
mres = A * mp;
SparseMatrix A(dim1,dim2);
双*p,res;
地图mp(p、dim2、dim3);
地图MRE(分辨率、dim1、dim3);
mres=A*mp;

非常简单。谢谢,非常简单。非常感谢。