eigen相关内容

本征系数自定义函数

我有一个 do_magic 方法,它需要加倍并加42。我想将此方法应用于 Eigen :: Matrix 或 Eigen :: Array 的每个系数(即意思是,我不介意是否只有两种类型都可以。) 有可能吗? Like this: Eigen :: MatrixXd m(2,2); m ..
发布时间:2020-10-27 23:40:31 C/C++开发

将本征Affine3d转换为Affine2d

我在3D中有一个仿射变换,我希望丢弃任何z轴信息来自。是否有方便的方法将 Affine3d 转换为 Affine2d ? 解决方案 尝试以下操作: Affine2d S2d = Translation2d(S3d.translation ().topRows 2())* S3d.linear()。topLeftCorner(); 演示: ..
发布时间:2020-10-27 23:38:17 C/C++开发

特征值-特征值平衡矩阵

我的经验(和其他一些经验一样:如何使用LAPACK从矩阵对的广义Schur分解中获得特定的特征向量?)是从特征值获得的特征值(我不在乎特征向量)不如获得的可靠numpy,matlab等从矩阵中调出条件。 互联网( https://www.mathworks.com/help/matlab/ref/balance.html )建议平衡是解决方案,但我可以请弄清楚如何在Eigen中执行此操作。有 ..
发布时间:2020-10-27 23:37:11 C/C++开发

C ++中的薄QR分解

是否存在易于使用的c ++库,用于矩形矩阵的“薄” QR分解? Eigen似乎仅支持完整的Q矩阵。我可以取一个完整的Q并丢弃一些列,但是不计算它们开头会更有效吗? 解决方案 Newmat 完全满足您的要求。 要将A分解为QR,您可以执行以下操作: 矩阵Q = A; UpperTriangularMatrix R; QRZ(Q,R) 如果A为3x5矩 ..
发布时间:2020-10-27 23:36:06 C/C++开发

将二维数组映射到Eigen :: Matrix

我不知道是否以及如何将二维双精度数组映射到Eigen :: Matrix。 是否可以映射 double d [] [] 数组,我将其作为 double ** p 到Eigen :: Matrix? 虽然一维数组可以正常工作,但我无法映射 p 到 Eigen :: Map 。那有可能吗,怎么办呢?大小 n 并不是真正恒定的,但我可以 ..
发布时间:2020-10-27 23:35:58 C/C++开发

在Eigen中将动态矩阵转换为固定矩阵

出于灵活性考虑,我正在使用C ++库Eigen将数据加载到动态大小的矩阵中(例如 Eigen :: MatrixXf )。我已经写了一些需要混合大小或固定大小的矩阵作为参数的函数(例如 Eigen :: Matrix 或 Eigen :: Matrix4f )。假设我对行和列的大小进行了正确的声明,如何将动态矩阵(在运行时设置的大小)转换为固定 ..
发布时间:2020-10-27 23:35:53 C/C++开发

本征:遮罩数组

是否可以像Matlab一样在Eigen中屏蔽数组? 类似 ArrayXd arrayA = ArrayXd :: Random(10 ,5); ArrayXi mask = ArrayXi :: Zero(arrayA.rows(),arrayA.cols()); mask = arrayA> 5; ArrayXd arrayB = arrayA(mask) ..
发布时间:2020-10-27 23:35:51 C/C++开发

本征:从向量中减去标量

使用Eigen库时出现错误,我要做的就是从Eigen :: VectorXf中减去标量。因此,我的代码如下: #define VECTOR_TYPE Eigen :: VectorXf #define MATRIX_TYPE Eigen :: MatrixXf // myMat是MATRIX_TYPE JacobiSVD jacobi_svd(m ..
发布时间:2020-10-27 23:35:48 C/C++开发

如何访问tensorflow :: Tensor C ++

我正在使用其C ++ API运行Tensorflow。 我有以下调用在finalOutput中返回四个张量: std :: string str1 =“ detection_boxes”; std :: string str2 =“ detection_scores”; std :: string str3 =“ detection_classes”; std :: st ..
发布时间:2020-10-27 23:35:43 C/C++开发

如何从opencv cv :: Mat或行优先的数组初始化本征矩阵?

我发现Eigen的Matrix是默认的以列为主的矩阵,类似于MATLAB,但是如何从cv :: Mat初始化Eigen :: MatrixXd?以下代码是我的测试。但是它们都无法成功编译。有人可以给我一些建议吗?或其他一些链接? cv :: Mat A_M = cv :: Mat(rows,cols,CV_64FC1); double * A =(double *)A_M.data() ..
发布时间:2020-10-27 23:35:41 C/C++开发

比较Google Test或Google Mock中的本征矩阵

我想知道是否有一种很好的方法来测试两个本征矩阵使用 Google测试或 Google Mock 。 将以下测试用例作为一个简化的示例:我将两个复值矩阵 A 和 B 相乘,并期望得到一定的结果 C_expect 。我使用Eigen计算数值结果 C_actual = A * B 。现在,我想比较 C_expect 和 C_actual 。现在,相应的代码如下: #include ..
发布时间:2020-10-27 23:35:35 C/C++开发

如何在Eigen中初始化SparseVector

如何在Eigen中初始化SparseVector?以下代码: #define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET #include 使用命名空间本征; SparseVector vec(3); main() { vec(0)= 1.0; } ..
发布时间:2020-10-27 23:35:30 C/C++开发

如何查看Eigen C ++模板库的版本号?

我向默认添加了Eigen的几种不同版本,包括Visual C ++目录。 但是在一些测试数值示例中使用 LDLT (Cholesky分解)时出现崩溃问题。 所以我想在调试代码时确定哪个版本实际上是活动的。 是否有任何功能可以指示当前活动的本征版本号? 解决方案 此答案只是以上评论的摘要: 在编译时,您有 EIGEN_WORLD_VERSION , EIGEN_MAJOR ..
发布时间:2020-10-27 23:34:24 C/C++开发

C ++特征根初始化静态矩阵

是否可以在头文件中初始化静态特征矩阵?我想将其用作全局变量。 我想做以下事情: 静态Eigen :: Matrix4d foo = Eigen :: Matrix4d(1,2 ... 16); 或类似于矢量: static Eigen :: Matrix4d foo = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; ..
发布时间:2020-10-27 23:33:56 C/C++开发

为什么选择Eigen进行TensorFlow?

TensorFlow白皮书提到使用了Eigen。是否有公开的解释说明如何选择Eigen,是否有动机在TensorFlow C ++ op内核中使用Eigen? 解决方案 我认为首先推动Eigen使用的关键特征之一是因为Eigen具有自己高度优化的矩阵产品内核,而所有其他竞争者都必须链接到某些BLAS库。而且,Eigen产品内核的代码是C ++,可以轻松访问低级内部内核,因此,他们可以轻松地 ..
发布时间:2020-10-27 23:33:54 C/C++开发

与专门的供应商库相比,C ++ Eigen库的性能如何?

我正在查看性能基准: http://eigen.tuxfamily.org/ index.php?title = Benchmark 我不禁注意到本征似乎始终优于所有专门的供应商库。问题是:怎么可能?有人会假定mkl / goto将使用处理器特定的调整代码,而本征则相当通用。 请注意 http://download.tuxfamily.org/eigen/btl-results-110 ..
发布时间:2020-10-27 23:32:51 C/C++开发

替代Eigen :: MatrixXd typedef

用向量替换所有 Eigen :: MatrixXd s和 Eigen :: VectorXd s的最简单方法是什么和具有长双精度数元素的矩阵? 我的代码中的每个基本浮点变量的类型都是 long double 。另外,每次使用矩阵或向量时,我都会使用以下typedef。 typedef Eigen :: VectorXd Vec; typedef Eigen :: MatrixXd ..
发布时间:2020-10-27 23:32:45 C/C++开发