我正在使用特征库计算矩阵的SVD。
Eigen::Matrix<double, Eigen::Dynamic, 6> A(points*2, 6);
Eigen::Matrix<double, Eigen::Dynamic, 1> b(points*2);
// fill the matrices
// ...
Eigen::Matrix<double, 6, 1> hVec;
hVec = A.bdcSvd(Eigen::ComputeThinU | Eigen::ComputeThinV).solve(b);
然而,以下断言引发:
SVDBase:只有当矩阵具有动态列数时,才能使用细U和V.
在这种情况下,禁止编译时已知参数的原因是什么?我在SVD问题背后的数学中没有看到什么?或者它是Eigen的限制/错误?
当然,我可以将矩阵转换为具有运行时列数的列,但这样就不允许通过指定编译时常量来实现可能的优化。