eigen相关内容

为什么与通过int进行int相比,通过float进行乘法运算会更快?

由于具有两个int矩阵A和B,具有1000多个行和10K列,我经常需要将它们转换为float矩阵以提高速度(4倍或更多). 我想知道为什么会这样吗?我意识到,浮点矩阵乘法有很多优化和矢量化功能,例如AVX等.但是,仍然有诸如整数的AVX2之类的指令(如果我没有记错的话).而且,不能将SSE和AVX用作整数吗? 为什么在矩阵代数库(例如Numpy或Eigen)下没有启发式算法来捕获此信息 ..
发布时间:2020-05-07 18:40:14 C/C++开发

本征索引中的子矩阵视图

在Eigen中是否可以等效于Matlab中的以下操作? A=rand(10,10); indices = [2,5,6,8,9]; B=A(indices,indices) 我想要一个子矩阵作为具有给定的非连续索引的原始矩阵的视图. 最好的选择是拥有原始矩阵的共享内存视图,这可能吗? 我已经找到了一个可行但不是很快的方法,因为它涉及到非向量化的for循环: MatrixXi ..
发布时间:2020-05-06 15:36:37 C/C++开发

特征值:如何用1和0代替矩阵正值?

我想在Eigen中编写以下matlab代码(其中K是pxp,而W是pxb): H = (K*W)>0; 但是到目前为止,我唯一想到的是: H = ((K*W.array() > 0).select(1,0)); 此代码无法按此处中的说明进行操作,而是将0替换为VectorXd::Constant(p,0)(如链接问题中所述)会生成运行时错误: Eigen::intern ..
发布时间:2020-05-06 15:34:40 其他开发

如何在Eigen上应用bsxfun之类的功能?

假设我有一个矩阵A,它是n x n个矩阵,我有一个向量b,它是n x 1个向量,我想在Eigen库中计算以下实现. bsxfun(@rdivide, A, b) 我如何应用本征? 解决方案 如何解决这个问题: Eigen::MatrixXf A(n,n); Eigen::VectorXf b(n); A.cwiseQuotient( b.replicate(1,A.col ..
发布时间:2020-05-06 14:30:39 其他开发

本征库-矩阵的伪逆(Matlab-Pinv)

我正在尝试使用本征库找到矩阵的伪逆.他们有一个确实可以实现它的类,但是我不知道该如何编写脚本的语法. 这就是它在网站上的显示方式( https://eigen.tuxfly .org/dox/classEigen_1_1CompleteOrthogonalDecomposition.html#ab2fd4c81aa1cd8bc917c7f135505cb7f ): const Inve ..
发布时间:2020-05-06 13:50:34 C/C++开发

本征将矩阵转换为矢量

在 MATLAB 中,下面的行将Matrix转换为Vector.它将矩阵逐列展平为vector. myvar(:) 我应该如何使用Eigen来做到这一点?该解决方案应适用于任何尺寸的Matrix. MatrixXd A(3,2); VectorXd B(6); A ..
发布时间:2020-05-06 12:47:07 其他开发

如何加快Eigen库的矩阵产品的速度?

我正在使用Eigen库研究两个大矩阵的简单乘法.对于相同大小的矩阵,这种乘法似乎比Matlab和Python都慢. 是否有什么方法可以使本征操作更快? 问题详细信息 X:随机的1000 x 50000矩阵 Y:随机50000 x 300矩阵 计时实验(在我2011年末的Macbook Pro上进行) 使用Matlab:X * Y大约需要1.3秒 使用有思想 ..
发布时间:2020-05-06 12:42:44 其他开发

如何确保本征等轴测图保持等轴测图?

我目前正在研究Eigen::Isometry3f,其定义为 typedef Transform Isometry3f;. 因此,例如,我无法将Affine3f分配给该Isometry3f,这对于保持等轴测图完整无缺. (原因是在Transform的赋值运算符中检查了Mode.) 但是我可以-通过Transform::operator(...)快捷方式 ..
发布时间:2020-05-06 11:25:40 C/C++开发

如何为使用Eigen(线性代数的C ++模板库)的C ++项目编写makefile?

我正在使用Eigen库,该库可以实现矩阵运算的矢量化.我不知道如何使用Eigen中提供的文件并编写makefile.使用Eigen的源文件包括下面列出的文件,它们甚至不是头文件(它们只是一些文本文件)- ,依此类推.在Eigen的网页上,提到要使用其功能,我不必构建项目,那么如何将这些文件包含在我的make ..
发布时间:2020-05-05 12:04:12 C/C++开发

围绕矩阵/线性代数库的多态包装器-C ++,以本征开头

我正在编写一个高度依赖线性代数例程的自定义C ++数值库.我还使用Eigen来满足实际的矩阵运算.我想将我的库与Eigen实现解耦,以使它不了解Eigen.这样一来,我就可以将Eigen引用保留在一个地方,并且可以轻松地在不久的将来将线性代数库更改为另一种实现. 在Java中,这将相对简单.但是,由于Eigen使用模板,因此我遇到了困难.特别是我正在使用MatrixXd和VectorXd类型 ..
发布时间:2020-04-30 12:11:13 C/C++开发

如何使用Eigen库计算零空间的基础?

如何使用Eigen库计算矩阵的零空间基础? 我试图找到显式函数名称以计算空基,并且作为一种变通办法,是找到用于计算矩阵的rref的方法(因为我们能够从rref获取空基. 但是我找不到任何相关的函数名称. 我认为必须对此有解决方案,但是我对Eigen库知之甚少,而且Eigen的代码也让我很难理解. 请为我建议解决此问题的方法. 解决方案 您可以使用本征:: FullP ..
发布时间:2020-04-30 12:08:50 C/C++开发

密集对称矩阵的本征有效类型

本征是否具有用于存储密集,固定大小,对称的有效类型矩阵? (嘿,它们无处不在!) 即对于N = 9,它应仅存储(1 + 9)* 9/2 == 45个元素,并且具有适当的操作.例如,应该有效地添加两个对称矩阵,这将返回相似的对称矩阵. 如果没有这样的东西,该采取什么行动(看起来像此)我应该把这种类型介绍给本征吗?它具有“视图"的概念吗?我可以为自己的类型写一些像“矩阵视图"这样的东西,让 ..
发布时间:2020-04-30 12:07:09 C/C++开发

从欠定系统中删除不可解方程

我的程序尝试求解线性方程组.为此,它将矩阵coeff_matrix和向量value_vector组合在一起,并使用特征值来解决它们,例如: Eigen::VectorXd sol_vector = coeff_matrix .colPivHouseholderQr().solve(value_vector); 问题在于系统可以被过度确定也可以被确定不足.在前一种情况下,E ..
发布时间:2020-04-30 12:05:54 C/C++开发

用线性最小二乘法求解带有复杂元素和下三角正方形A矩阵的系统Ax = b

我想以线性最小二乘法求解线性系统Ax = b,从而获得x.矩阵A,x和b包含复数元素. 矩阵A的尺寸为n乘以n,并且A是方形矩阵,也是较低的三角形.向量b和x的长度为n.这个系统中的未知数与方程式一样多,但是由于b是一个充满实际测得的“数据"的向量,我怀疑最好以线性最小二乘法进行. 我正在寻找一种算法,该算法将以稀疏矩阵数据结构用于下三角矩阵A,从而以LLS方式有效地解决该系统. ..
发布时间:2020-04-30 12:03:13 C/C++开发