我尝试使用Eigen将我的代码从Matlab写入c ++,我有一个布尔矩阵
A << 1 0 0
0 1 0
1 1 0
我在Matlab中使用find函数来获取非零值find (A) --> 1 3 5 6
的索引,如何用Eigen做同样的思考?感谢。
答案 0 :(得分:2)
截至今天,未在Eigen内部实施。基本上,您需要手动循环遍历矩阵。这样的事情应该有效(当然,Eigen将开始索引为0):
Eigen::Matrix<bool, ....> A;
std::vector<Eigen::Index> idxs;
for(Eigen::Index i=0; i<A.size(); ++i)
if(A(i))
idxs.push_back(i);
答案 1 :(得分:0)
我希望你能看到 libigl。 libigl 是一个简单的 C++ 几何处理库。它具有广泛的矩阵操作功能,使 Eigen 感觉更像 MATLAB。
您可以检查 this website 以查看 matlab to eigen。
作为来自 @ChristianB 的建议,我添加了一个图像来向本征显示 matlab。