实现MATLAB的“/”运算符aka。 C ++ Eigen Library中的mrdivide

时间:2013-11-20 12:06:29

标签: c++ matlab linear-algebra eigen

我正在寻找一种在Eigen中使用MATALB语法x = B / A;的方法。

我知道可以通过定义EIGEN_MATRIXBASE_PLUGIN变量来扩展Eigen中的Matrix类(参见Eigen::Documentation)。

现在我的问题是:我该怎么做?更重要的是,我如何做到这一点有效

编辑: 正如评论中所提到的,我现在得到了这段代码:

const Matrix operator/ (const Matrix& other) const
{
    return ((other.transpose()).fullPivHouseholderQr().solve(this->transpose())).transpose();
}

如果两个变量都属于x = B / A;类型,则适用于Eigen::Matrix,但如果我得到类似Eigen::Matrix / double的内容,则不再有匹配的运算符。由于在Eigen中这并不容易正确实现,我现在暂时搁置。

也许有经验扩展Eigen课程的人可以帮助...

0 个答案:

没有答案