【发布时间】:2019-03-25 03:30:57
【问题描述】:
Eigen 似乎不检查动态矩阵的维度。例如,如果我执行以下代码:
auto EA = Eigen::MatrixXf(3, 2);
auto EB = Eigen::MatrixXf(3, 2);
for (auto i = 0; i < 3; ++i)
{
for (auto j = 0; j < 2; ++j)
{
EA(i,j) = i + j + 1;
EB(i,j) = i + j + 1;
}
}
auto EC = EA*EB;
std::cout << "EA: " << std::endl << EA << std::endl;
std::cout << "EB: " << std::endl << EB << std::endl;
std::cout << "EC: " << std::endl << EC << std::endl;
它输出:
EA:
1 3
2 3
2 4
EB:
1 3
2 3
2 4
EC:
7 12
8 15
10 18
如何强制 Eigen 在运行时检查矩阵维度?这对于初学者和调试非常有用。
【问题讨论】:
-
它实际上是在使用调试标志编译时检查尺寸。我不确定我的问题是否仍然相关。