c++ - 如何将两个 Eigen::Vector3f 除以相应的元素
问题描述
我需要将两个向量除以相应的元素。我怎样才能做到这一点?我找不到任何好的来源。就像是
Eigen::Vector3f v1 = { 10.0f, 10.0f, 10.0f };
Eigen::Vector3f v2 = { 5.0f, 2.0f, 2.0f };
Eigen::Vector3f v3 = v1 / v2;
预期结果:
{ 2.0f, 5.0f, 5.0f }
它说“没有运算符/
与操作数匹配”进行除法。
解决方案
虽然内置矩阵(表达式)类型通过重载运算符(例如矩阵向量乘法)支持常见的线性代数运算,但 Eigen 为组件运算提供了不同的类型;它们被称为“数组”并包含Eigen::Array<...>
实例化以及数组表达式。.array()
您始终可以通过and成员函数将矩阵包装到数组表达式中,反之亦然.matrix()
- 它们不复制任何内容,而是重新打包基础数据,以便可以将数组相关的操作用于矩阵,或矩阵相关的操作用于数组。在你的情况下,这将是
const Eigen::Vector3f v1 = { 10.0f, 10.0f, 10.0f };
const Eigen::Vector3f v2 = { 5.0f, 2.0f, 2.0f };
const Eigen::Vector3f v3 = v1.array() / v2.array();
如果完全不需要矩阵接口,也可以Eigen::Array<...>
直接使用:
const Eigen::Array3f a1 = { 10.0f, 10.0f, 10.0f };
const Eigen::Array3f a2 = { 5.0f, 2.0f, 2.0f };
const Eigen::Array3f a3 = a1 / a2;
推荐阅读
- erlang - erlang 的 `binary_to_term` 是否总是能够读取任何以前版本的二进制 `term_to_binary` 生成的?
- angular - 为什么 app_initializer 无法导航到另一个组件,但其他一切正常?
- wordpress - 商店页面上的额外产品信息
- php - 如何使用 Zend 扩展和 PHP 内置服务器
- r - R - 按行和列合并数据框
- flutter - 如何强制屏幕阅读器在 Flutter 中说话?
- mongodb - 带有 json 注释的结构中的 Mongo 编组嵌套文档
- kubernetes - 需要帮助通过 helm 更新 loki 堆栈
- cryptography - 通过解密私钥,使用 pgp 密钥在线验证物理项目
- flutter - Flutter Provider:对 List 的更改不会传播