Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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
Matrix 特征3:仅沿一维的动态矩阵:无法构造_Matrix_Constructor_Eigen3 - Fatal编程技术网

Matrix 特征3:仅沿一维的动态矩阵:无法构造

Matrix 特征3:仅沿一维的动态矩阵:无法构造,matrix,constructor,eigen3,Matrix,Constructor,Eigen3,我可以轻松定义固定行数和未定义列数的矩阵类型: typedef Matrix<double, 6, Dynamic> dMat6rowsNCols; dMat6rowsNCols M1; 我可以问你一些提示吗 干杯 Sylvain来自DenseBase::Zero(索引): 这仅适用于向量(行向量或列向量),即编译时已知有一行或一列的矩阵 您必须使用DenseBase::Zero(索引,索引): 如果您使用的是当前的Eigen中继,您可以对某些功能使用Eigen::NoCh

我可以轻松定义固定行数和未定义列数的矩阵类型:

  typedef Matrix<double, 6, Dynamic> dMat6rowsNCols;
  dMat6rowsNCols M1;
我可以问你一些提示吗

干杯

Sylvain

来自DenseBase::Zero(索引):

这仅适用于向量(行向量或列向量),即编译时已知有一行或一列的矩阵

您必须使用
DenseBase::Zero(索引,索引)

如果您使用的是当前的Eigen中继,您可以对某些功能使用
Eigen::NoChange
,例如:

M1.setZero(Eigen::NoChange, 4);

作为旁注:调用
M1.Zero
并不调用将所有系数设置为0的成员函数,而是调用静态函数的一种不太常见的方法。您可能正在寻找。

多谢dtell,我注意到DenseBase::Zero(索引,索引)工作正常,但从语义上讲,我觉得在一个一维固定的矩阵上调用二维参数方法很不方便。如果您觉得这样,请向Eigen提交一个功能请求;-)我测试了用dMat6rowsNCols::Zero(7,4)实例化我的6xN矩阵,它抛出了一个异常。因此,它似乎得到了巩固。
M1 = dMat6rowsNCols::Zero(6, 4);
M1.setZero(Eigen::NoChange, 4);