首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合特征的.transpose()和其他操作

结合特征的.transpose()和其他操作
EN

Stack Overflow用户
提问于 2021-06-10 14:04:58
回答 1查看 36关注 0票数 0

当我打开libiglMATLAB到libigl+Eigen转换表时,我正在阅读它的文档。在那里(第17行,或第一个红色的行),它是这样的:

不要试图像这样在表达式中组合.transpose()C = A + B.transpose();

相反,他们这样做:

代码语言:javascript
复制
SparseMatrixType BT = B.transpose();
SparseMatrixType C = A+BT;

为什么会这样呢?我在Eigen的文档里什么也找不到。

在我的代码中,我有如下内容:

代码语言:javascript
复制
class Point {
public:
    Point() : rot_matrix(Eigen::Matrix3d::Identity()), cm_set(Eigen::Vector3d::Zero()) {}
    const Eigen::Matrix3d & rot_matrix() const { return rot_matrix; }
    const Eigen::Matrix3d & cm_set() const { return cm_set; }
private:
    Eigen::Matrix3d rot_matrix;
    Eigen::Vector3d cm_set;
};


auto other = Point();
const Vector3d point = other.rot_matrix().transpose()*other_cm + other.cm_set();

这会导致程序错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 14:43:05

根据本征文档,对transpose()的唯一限制是

代码语言:javascript
复制
m = m.transpose();

因此

代码语言:javascript
复制
MatrixType res = A + B.transpose();

合法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67922783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档