eigen相关内容

通过模板发布C ++ Eigen :: Matrix类型

我正在编写一个以类型( float 或 double )为模板的C ++函数,并使用内部 Eigen :: Matrix 。该函数将使用 float , double 和模板类型 Eigen:Matrix的组合对象。 Eigen :: Matrix :: cast()对于 double 和 float ,尽管在​​将其与模板类型一起使用时遇到了一个奇怪的问题。参见下面的代码: #inc ..
发布时间:2020-09-27 07:32:43 C/C++开发

使用谷类库序列化Eigen :: Matrix

更新:在Google上搜索并阅读了代码中的doxygen注释后,我设法使其正常工作。问题是我在使用 resize()方法并且没有使用 std :: ios :: binary 之前错过了转换为溪流。如果您想做类似的事情,最好检查一下Azoth的答案。 我正在尝试序列化 Eigen :: Matrix 使用谷类输入。这就是我所拥有的(松散地基于 https://gist.github.com/ ..
发布时间:2020-09-27 07:28:14 C/C++开发

在C项目中使用Eigen

我正在研究从互联网获得的C项目,并且我正在尝试向该项目添加一些涉及线性代数的函数。在我以前使用C ++编写的作品中,我通常依靠Eigen进行线性代数。 有没有一种方法可以将Eigen用于C项目?如果是,我应该怎么做才能使它工作? (仅添加Eigen头文件是不够的,因为例如标准的C ++文件不会自动包含在内)。 解决方案 Eigen是一个 但是,您可以使用C转换单元直接使用该库。 ..
发布时间:2020-09-27 06:18:03 C/C++开发

使用特征库将列追加到矩阵

这是一个非常简单的任务,但是我找不到它的答案: 使用Eigen库,假设我有 Matrix2Xd垫和 Vector2d vec ,其中 mat = 1 1 1 1 1 1 vec = 2 2 现在我需要类似 mat.addCol(vec)的东西,这样之后 mat = 1 1 1 2 1 1 1 2 什么是最好的(最简单的) )的 ..
发布时间:2020-09-27 06:11:30 C/C++开发

std :: vector< Eigen :: Vector3d>到特征:: MatrixXd特征

我想知道是否有比for循环更简单的方法来解决我的问题。因此,情况如下: 通常,我想从传感器中收集数据点(消息的类型为 Eigen :: Vector3d 并且我无法更改,因为它是一个巨大的框架) 聚集点应保存在Eigen MatrixXd中(为了在优化算法中将它们作为Matrix进一步处理),矩阵的先验维数在某种程度上是未知的,因为这取决于我要进行多少次测量(一维是3,因为有x,y,z ..
发布时间:2020-09-27 04:20:14 C/C++开发

将Eigen :: VectorXd类型转换为std :: vector

在我的特定情况下,他们有很多链接可以反过来,但是我找不到从Eigen :: Matrix或Eigen :: VectorXd获取std :: vector的方法。 解决方案 vector vec(mat.data(),mat.data()+ mat.rows()* mat.cols()); ..
发布时间:2020-09-27 02:23:40 C/C++开发

Eigen :: Ref用于连接矩阵

如果我要连接两个矩阵 A 和 B ,我会这样做 使用Eigen :: MatrixXd; const MatrixXd A(n,p); const MatrixXd B(n,q); MatrixXd X(n,p + q); X ..
发布时间:2020-09-27 01:30:28 C/C++开发

本征库中的多维数组

关于优秀特征库的用法和未来的三个简单问题: 是否有理由可以访问矩阵?通过 matrix [i] [j] 不可能,但只能通过 matrix(i,j)? 是否有计划实现这种语法? 是否将实现多维数组 matrix [n] [m]的实现。 .. [l] ? 我真的很喜欢本征库,它使用起来既快捷又容易。我唯一缺少的就是多维数组。 解决方案 我不能说 eigen 库,因为我从未使用过 ..
发布时间:2020-09-24 23:05:41 C/C++开发

Boost :: uBLAS vs本征

我几乎所有的数学线性代数工作都习惯于本征. 最近,我发现Boost还提供了一个C ++模板类库,该库提供了基本线性代数库(仔细观察两者并不能使我对它们之间的区别更加清楚: Boost :: uBLAS: uBLAS为密集,单位和稀疏向量,稠密,恒等,三角形,带状,对称,厄米和稀疏矩阵提供模板化的C ++类.向量和矩阵的视图可以通过范围,切片,适配器类和间接数组构造.该库涵盖了对向量和矩 ..
发布时间:2020-09-22 05:09:29 C/C++开发

特征-将const数组映射到动态向量

我需要定义一个采用const C数组并将其映射到Eigen映射的函数.以下代码给我一个错误: double data[10] = {0.0}; typedef Eigen::Map MapVec; MapVec fun(const double* data) { MapVec vec(data, n); return vec; } 如果我从函数 ..
发布时间:2020-09-07 05:30:34 C/C++开发

如何围绕表达式模板编写第三方库包装器类

我们正在尝试在我的研究小组中实施新的C ++代码,以执行大型数值模拟(有限元,有限差分法,拓扑优化等).该软件将被学术界和行业人士使用. 对于该软件的稠密线性代数,我们想使用Eigen或Armadillo.我们希望围绕这些软件包构建一个包装器,其原因有两个:1.向用户而不是第三方API公开我们自己的API; 2.如果将来需要切换库.我知道原因2是一种非常昂贵的保险形式,但是我们在以前的模拟软 ..
发布时间:2020-09-07 03:16:30 C/C++开发

将本征库添加到Android NDK

我需要在我的Android Studio项目中包含Eigen库,以执行一些线性代数运算,并使用一些我为桌面开发的C ++代码.我一直在寻找有关此主题的信息,但所涉及的内容还不太多,而且我还是Android NDK的新手. Eigen库不需要编译,所以我认为这很容易,但是我缺少了一些东西.我尝试将Eigen文件夹(包含所有包含项)复制到NDK文件夹(.. \ Android \ Sdk \ ndk- ..
发布时间:2020-08-27 21:14:57 移动开发

本征程序中的性能瓶颈

作为一个较大问题的一部分,在处理Eigen中的稀疏矩阵时,我遇到了性能瓶颈. 我需要从稀疏矩阵(G)中的每个元素中减去一个浮点数(x),包括系数为零的位置.因此零个元素的值应为-x 此刻我的操作方式如下: //calculate G x=0.01; for(int i=0;i ..
发布时间:2020-08-06 02:48:08 C/C++开发

本征密稀疏矩阵乘积是带螺纹的吗?

我知道稀疏产品是根据文档编写的: https://eigen.tuxfamily.org/dox/TopicMultiThreading.html 那么稀疏呢? 解决方案 更精确地说,仅当左侧稀疏矩阵是行优先的时,稀疏稠积才是多线程的.相反,如果右侧的稀疏矩阵是列大的,则稠密的稀疏乘积是多线程的. ..
发布时间:2020-08-06 02:40:01 C/C++开发