首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逐行交叉积特征

逐行交叉积特征
EN

Stack Overflow用户
提问于 2017-04-07 16:55:11
回答 1查看 1.3K关注 0票数 3

我试图在一个Eigen::MatrixXd dir的每一行与相应的Eigen::MatrixXd v0v2行之间进行交叉积,并将结果保存在另一个Eigen::MatrixXd pvec中。

pvec:Eigen::MatrixXd pvec(v0v2.rows(), 3);的初始化

我试过这种肮脏的方法:

for(size_t i = 0; i < v0v2.rows(); i++){ pvec.row(i) = dir.row(i).cross(v0v2.row(i)); }

我得到了一个错误:THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE

我认为这将是因为列-主要/行-主要问题,所以我增加了.transpose(),但这也没有帮助。我总是可以做一个更脏的个人交叉产品元素,比如:

Vec3 crossProduct(const Vec3<T> &v) const { return Vec3<T>(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x); }但是我想做一个本征方法。任何帮助都会很好!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-08 02:24:41

.cross的参数必须在编译时知道大小为3。尝试将矩阵声明为Eigen::Matrix<double, Eigen::Dynamic, 3> dir(N, 3);,等等。

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

https://stackoverflow.com/questions/43283444

复制
相关文章

相似问题

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