我想计算r = A * b,其中A是包含大约一半0和一半的矩阵,b是双向量。
MatrixXd Ad;
MatrixXb Ab; // bool matrix
VectorXd b, r;
我试过了:
1) Ad * b
2) r(k)=Ab.row(k).transpose().array().select(b,0).sum()
3) Ab.cast<double>() * b
4) Ab.cast<double>().sparseView() * b
1比2,3和4快,尽管2似乎是最有效的。 A在我的项目中很大(> 10k * 1000k),所以我不想使用1.
是否有更有效的方法来计算A * b而不是1与Eigen 3?
谢谢!