eigen - 在 Eigen 中乘以诊断矩阵(作为向量提供)
问题描述
给定一个矩阵A
和一个d
表示对角矩阵 D 的对角线的向量,A
仅根据d
和A
构造D
(作为密集矩阵)和做D*A
似乎效率低下,因为它会涉及不必要的零乘法。的行A
只需按 的相应元素进行缩放d
。
我应该转换为数组并缩放行还是 Eigen 提供对角矩阵以避免不必要的开销的方式构造和相乘?
解决方案
Eigen::DiagonalMatrix
正如Damien建议的那样,您可以使用。或者,如果您已经获得了Eigen::Vector
(或Map
),您可以使用d.asDiagonal()
如下:
Eigen::VectorXf d;
Eigen::MatrixXf a, b;
b = d.asDiagonal() * a;
推荐阅读
- postgresql - Postgresql database size is lower after restore
- javascript - 如何声明地图
哪个 T 应该是可变参数类而 K 应该是 T 的一个实例? - python - Telethon event handler stuck looping
- javascript - Trying to link tabs from main menu
- python - Beautifulsoup unable to get data from mds-data-table from morningstar
- bash - 在空格后剪切 bash 变量输入
- python - 这两个 django 进口有什么区别
- perforce - Perforce file(s) not on client view
- javascript - 在容器前放置横幅
- php - Login to google - Sheet API