eigen相关内容

本征稀疏LU解算器返回值

我对以下代码有问题,经过一些研究,我在单独的一行中指出了问题,但现在不确定如何解决。 typedef double ComplexType; typedef std :: complex复杂; typedef Eigen :: SparseMatrix SparseMat ..
发布时间:2020-10-27 23:51:32 C/C++开发

固定大小特征值作为参数

我正在尝试编写一个采用固定大小本征类型的函数(但以标量类型为模板,例如float / double)。我已阅读 http://eigen.tuxfamily.org/dox/TopicFunctionTakingEigenTypes.html 但我无法使其完美运行。 这是函数定义: template makeSkewSym ..
发布时间:2020-10-27 23:51:29 C/C++开发

本征:矢量或矩阵逐项幂?

给出一个实数 c 的向量和一个整数 rw 的向量,我想创建一个向量 z 和元素 z_i = c_i ^ rw_i 。我尝试使用组件级函数 pow 来执行此操作,但出现编译器错误。 #include typedef Eigen :: VectorXd RealVector; typedef Eigen :: VectorXi IntVector; / ..
发布时间:2020-10-27 23:51:24 其他开发

本征,用四元数旋转vector3d吗?

我有一个3d点数组,作​​为 std :: vector 。 我需要使用位置和四元数来转换这些点。 我的问题是: 如何我用四元数旋转这些点?还有比以下更快速的方法: Eigen :: Vector3d Trans; //通过 Eigen :: Quaterniond quats移动位置//为(int p = 0; p ..
发布时间:2020-10-27 23:51:21 其他开发

本征元素操作无循环

我想检查矩阵中的元素是否小于零,然后再给它们赋零,在matlab中,它是使用以下方法完成的: ind = find(floatFrame ..
发布时间:2020-10-27 23:51:17 C/C++开发

如何在Eigen中生成张量的外积?

在本征中,可以使用以下方法很容易地进行张量收缩: Tensor张量1; Tensor张量2; //填充数据,以便 // tensor1的尺寸为[10],而tensor2的尺寸为[5,10] std :: array product_dims1 = {Inde ..
发布时间:2020-10-27 23:51:15 C/C++开发

使用std :: begin(),std :: end()将ArrayXd转换为stl向量,

在我看来,我应该能够使用 std :: begin()和 std :: end()将 ArrayXd 转换为 std :: vector ;但是,当我在以下代码中尝试时,我的尝试失败了。我的理解是,任何 Eigen 对象上的 .data()方法都返回一个指向连续内存块的指针,类似于c样式数组。因此,由于我可以在ac样式数组上使用 std :: begin(), std :: en ..
发布时间:2020-10-27 23:50:10 C/C++开发

int p在lpNorm p中不是常数表达式。

我编写了此函数 模板 double norm(const T& v,const int p){ return v.template lpNorm (); } 但它不起作用并给出错误: 错误:'p'不是常数表达式 return v.template lpNorm (); ^ 我似乎认为编译器期望 p ..
发布时间:2020-10-27 23:50:00 C/C++开发

本征:按行复制(广播)

我想复制矩阵 M 的每一行而不会发生任何复制(即通过创建视图): 0 1 0 1 2 3-> 0 1 2 3 2 3 M.rowwise()。replicate(n)是 M.replicate(1,n)似乎没有用。 以下代码段进行了复制,并且如果 M 不起作用 Eigen :: Index rowFactor = 2 ..
发布时间:2020-10-27 23:49:54 其他开发

重用Eigen :: SimplicialLLT的符号分解

我在使用本征库的API(即用于稀疏矩阵的Cholesky因子分解的SimplicialLLT类)方面有些挣扎。 我需要分解三个矩阵,然后用它们来求解许多方程组(仅更改右侧)-因此,我只想分解一次这些矩阵,然后重新使用它们。而且,它们都具有相同的稀疏模式,因此我只想进行一次符号分解,然后将其用于所有三个矩阵的数值分解。根据文档,这正是 SimplicialLLT :: analyzePattern ..
发布时间:2020-10-27 23:49:50 其他开发

如何在本征中转置张量

我正在尝试获得两个张量的矩阵乘积,其中一个张量应在相乘之前变换( At * B )。 到目前为止,我在本征文档是矩阵产品,不进行任何转置,并且两个矩阵都转置。 $我正在寻找一种方法来要么直接收缩两个张量,要么将其中一个张量转置,要么通过在收缩之前转置一个张量。 解决方案 我知道了,可以使用随机播放方法来完成转置效果。 Eigen :: Tensor m(3,5 ..
发布时间:2020-10-27 23:49:49 其他开发

特征矩阵取矩阵的每一行的平均值(计算列向量的质心)

我真的是C ++的新手,但这就是我想要做的。我有一个4 x 3矩阵: 100 109.523 119.096 100 89.7169 76.256 100 96.0822 103.246 100 101.084 85.0639 我想计算每行的平均值并将其存储在向量。我正在使用本征库。我想不出任何有效的方法。到目前为止,这是我的代码: MatrixXd ..
发布时间:2020-10-27 23:49:45 C/C++开发

使用特征消除零列或行

我想知道是否有一种更有效的方法来删除全部为零元素的列或行。我确定本征库中正在使用这些函数,但我不知道该怎么做。 现在,我正在这样做,并带有while循环的想法在有多个行/列加起来为零的情况下使用,我不想超出范围限制或不传递任何零行。 void removeZeroRows(){ int16_t index = 0; int16_t num_rows = rows(); 而 ..
发布时间:2020-10-27 23:48:40 C/C++开发

访问本征矩阵的行向量时进行复制或引用

我正在使用使用 Eigen 矩阵库的代码。我注意到,通过该代码,访问器如下: RowVector3f V(size_t vertex_index)const { return mymatrix.row(vertex_index); } 使用返回const ref的访问器会更好吗? Eigen有可能吗?或者也许只是将指向内部float的指针返回到行开始并将其强制转换 ..
发布时间:2020-10-27 23:48:37 C/C++开发

本征中没有副本乘法

我正在将Eigen用于大型矩阵,并且我正在考虑优化代码的方法,重点在于减少动态内存分配。 我正在尝试将两个矩阵相乘。这些矩阵有时会发生一些变化,但是它们的大小保持不变。 我希望看到乘法运算的输出进入预定义的矩阵(该矩阵已经分配了内存)。 所以这是我在做什么的示例: Eigen :: MatrixXd左,右,结果; // // 结果=左*右; // ...左右值会 ..
发布时间:2020-10-27 23:48:27 C/C++开发

本征:将每一行除以最后一行

在使用Eigen的 rowwise 操作时,我不太清楚这个语法。 我有一个本征矩阵,我想将每一行除以最后一行。因此,如果我们从矩阵开始 r = [0,1 2,3 4, 5] 然后在进行此转换后,我想拥有 r = [0,.2 .5,.6 1,1] 最好执行该操作,覆盖 r 。此外,我不会使用最后一行中的值,因此,最后一行实际 ..
发布时间:2020-10-27 23:47:54 C/C++开发