Matlab

时间:2017-07-28 13:47:19

标签: find eigen

我尝试使用Eigen将我的代码从Matlab写入c ++,我有一个布尔矩阵

A << 1 0 0
     0 1 0
     1 1 0 

我在Matlab中使用find函数来获取非零值find (A) --> 1 3 5 6的索引,如何用Eigen做同样的思考?感谢。

2 个答案:

答案 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。