C++:如何将 std::vector 操作转换为 Eigen::VectorXf?
C++: how to convert std::vector operations to Eigen::VectorXf?
我有这个向量操作,我正在尝试实现Eigen:VectorXf来优化它的速度:
for (int m = 0; m < vectorSize; ++m)
{
A[m] = ((B[m] * C[m]) + ((D[m] * E[m]) + (F[m] * G[m])));
H[m] = A[m] * I[m];
out = out + H[m];
E[m] = C[m];
C[m] = A[m];
}
"out"是一个浮点变量。实现这一点的最佳方法是什么?
非常感谢。
对于向量,您必须使用array()
来获得分量乘法。您可以使用sum()
函数将out
计算为 H 元素的总和。
VectorXf B, C, D, E, F, G, I;
//...
// Assuming all vectors have the same size
const VectorXf A = ((B.array() * C.array()) + (D.array()) * E.array()) + (F.array() * G.array());
const VectorXf H = A.array() * I.array();
const float out = H.sum();
E = C;
C = A;
请注意,如果在编译时已知矢量大小,则最好使用Matrix<float,vectorSize,1>
而不是VectorXf
相关文章:
- C++:如何将 std::vector 操作转换为 Eigen::VectorXf?
- 将 Eigen::MatrixXd 转换为 arma::mat 并在新对象上制作副本
- 将 Eigen::MatrixXd 矩阵转换为 cgal 容器类型
- Eigen::将稀疏矩阵转换为行顺序或列顺序
- 将eigen :: sparsematrix转换为cusparse,反之亦然
- 将 Eigen::TensorMap 转换为 Eigen::Tensor
- 将 Eigen::P ermutationMatrix.indices() 转换为 array/vector
- 将eigen :: arrayxxd转换为eigen :: matrixxd
- c++ lambda 函数,用于将 Eigen::VectorXd 转换为 Eigen::MatrixXd
- 在 Eigen::Matrix 中转换 dolfin::Matrix
- 将双[]转换为eigen :: matrix4d
- C :如何将std ::向量转换为eigen :: matrixxd
- 将PCL点类型XYZ转换为EIGEN VECTOR 4F
- 从 Eigen::CwiseBinaryOp 转换为 MatrixXd 会导致段错误
- 将 pcl::P ointCloud 转换为 Eigen::MatrixBase
- 将 Eigen::matrixXd 转换为 Double
- 将Eigen::VectorXd类型转换为std::vector
- Euler到四元数的转换PCL+Eigen
- 无法从'const Eigen::GeneralProduct<Lhs,Rhs,ProductType>'转换为'double'
- 将cv::Mat之间的矩阵转换为Eigen:: matrix和