C++ 不同类型的逗号初始值设定项的错误使用

C++ 不同类型的逗号初始值设定项的错误使用,c++,math,matrix,linear-algebra,eigen,C++,Math,Matrix,Linear Algebra,Eigen,这就是我想做的: Eigen::MatrixXd extended_points(4,4); extended_points << Eigen::Vector3d(-0.8, -0.8, 1.0).normalized(), 1.0, Eigen::Vector3d( 0.8, -0.8, 1.0).normalized(), 1.0, Eigen::Vector3d( 0.8, 0.8, 1.0).normalized(), 1.0, Eigen:

这就是我想做的:

Eigen::MatrixXd extended_points(4,4);
extended_points <<
    Eigen::Vector3d(-0.8, -0.8, 1.0).normalized(), 1.0,
    Eigen::Vector3d( 0.8, -0.8, 1.0).normalized(), 1.0,
    Eigen::Vector3d( 0.8,  0.8, 1.0).normalized(), 1.0,
    Eigen::Vector3d(-0.8,  0.8, 1.0).normalized(), 1.0;
Eigen::MatrixXd扩展_点(4,4);

扩展点一个可能的问题:Eigen::Vector3d不是列向量吗?
作为一种解决方法,您可以尝试文档中的RowVectorXd。

您能否澄清您希望元素在
扩展点中的顺序(每行一个或每列一个)?矩阵的结构应模仿语法。i、 每个浮点向量对是矩阵的一行。这确实是固定的
Eigen::CommaInitializer<MatrixType>& Eigen::CommaInitializer<MatrixType>::operator,(const Scalar&) [with XprType = Eigen::Matrix<double, -1, -1>; Eigen::CommaInitializer<MatrixType>::Scalar = double]: Assertion `m_currentBlockRows==1' failed.