问题标签 [eigen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
168 浏览

c++ - 如何向量化这个程序

下面的程序(嗯,“从这里”之后的行)是一个我必须经常使用的结构。我想知道是否有可能(最终使用 eigen 库中的函数)矢量化或以其他方式使该程序运行得更快。

本质上,给定一个向量float x,这个构造恢复了向量 中已排序元素xint索引SIndex。例如,如果 的第一个条目SIndex是 10,则表示 的第 10 个元素x是 的最小元素x

0 投票
1 回答
193 浏览

opencv - 为什么 EigenCount 不能大于 TrainingImagesCount-1 [EigenObjectRecognizer]

http://www.cognotics.com/opencv/servo_2007_series/part_5/fig_6_thumb.png

谁能解释为什么 nEgiens 不能超过上图中的 nTrainFace-1 ?

我正在使用 EmguCv。当 nEgiens 和 nTrainFace 相等时,最后一个特征图像返回空白(黑色)。但是,在 emgucv 实现中:

0 投票
3 回答
1201 浏览

c++ - 从欠定系统中删除不可解的方程

我的程序试图求解一个线性方程组。为了做到这一点,它组装了 matrixcoeff_matrix和 vector value_vector,并使用 Eigen 来解决它们,如下所示:

问题是该系统既可能被过度确定,也可能被低估。在前一种情况下,Eigen 要么给出正确的解,要么给出不正确的解,我使用coeff_matrix * sol_vector - value_vector.

但是,请考虑以下方程组:

在这种特殊情况下,Eigen 正确地求解了后面的三个方程,但也给出了a和的解b

我想要实现的是,只有只有一个解的方程才能被求解,其余的方程(这里的第一个方程)将保留在系统中。

换句话说,我正在寻找一种方法来找出当时可以在给定的方程组中求解哪些方程,哪些不能,因为会有多个解。

你能提出任何实现这一目标的好方法吗?

编辑:请注意,在大多数情况下,矩阵不会是正方形的。我在这里又添加了一行,只是为了注意也可能发生过度决定。

0 投票
2 回答
21566 浏览

eigen - 在 Eigen 中找到 rowwise maxCoeff 和 Index of maxCoeff

我想按矩阵的行查找最大值和索引。我基于eigen 网站上的一个示例(示例 7)。

这里的问题是我的线

是错的。原来的例子有

即有一个额外的减少 .sum() 涉及。有什么建议么?我想我只想要与我在matlab中写的相同的特征

即找到最大值和它在 mymatrix 的第二维上的索引并返回 (nrow(mymatrix),2) 矩阵。谢谢!

(也发送到特征列表,抱歉交叉发布。)

0 投票
1 回答
684 浏览

c++ - 使用 Eigen 和 boost::thread 在 C++ 中出现奇怪的内存泄漏

我有两个线程在一个程序中运行。它们是使用 boost::thread 创建的。

这两个线程在内存方面不共享任何东西。它们之间不共享数据结构或对象。

现在第二个线程使用了一个类,该类具有许多本征双矩阵作为私有成员。我确保使用 Eigen 指令 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 等对齐矩阵

当第一个线程运行时,第二类矩阵中的元素被覆盖。我通过检查检查了这一点,因为应该是小数的元素突然变成了整数。当第一个线程未运行时,第二个线程没有问题,并且其 Eigen 成员具有正确的值。

同样:1)两个线程不共享数据结构。2)程序运行时没有分段错误消息或类似的东西或一些错误消息。3)任何建议如何保护第二个线程的内存或如何跟踪内存是如何被违反的?

先感谢您。我真的很抱歉我没有发布代码,但它是巨大的。如果您希望我发布代码中的特定内容,请告诉我。

0 投票
1 回答
321 浏览

c++ - 使用 std::vector 和 boost::thread 进行内存管理

假设我有以下代码

显然,这个程序会在某个时候耗尽内存并且应该抛出一个std::bad_alloc. 但我的问题如下:

  1. 在此之前是否存在 obj1 的 private_vector 会被 obj2 的 private_vector 覆盖的情况?有没有办法保护它?
  2. 如果我在定义 EIGEN_MAKE_ALIGNED_NEW_OPERATOR 时强制类中的 private_vector 在内存中对齐(就像 Eigen 对其矩阵所做的那样),这是否会改变问题 1 的内容?
0 投票
5 回答
1654 浏览

c++ - 如何调用模板类的析构函数?

我正在使用库Eigen的 SparseMatrix 类。要创建一个,我使用:

我怎样才能调用这个对象的析构函数?

0 投票
1 回答
1256 浏览

c++ - c++ 反向迭代器和特征

我一直在使用 JF Sebastian实现的两个排序数组的 k 阶统计并取得了一些成功。

基本上,该算法将长度为 la 和 lb 的两个排序数组 A 和 B 作为输入,并以 log(la)+log(lb) 次返回它们并集的第 k^th 大元素。

但是,在我的应用程序中,在某些情况下 A 将按降序排序。幸运的是,我提前知道这些情况是什么。所以我总是可以这样做:

A.data()并且A.data()+A.size()分别是 A.begin() 和 A.end() 的特征构造)。

以及 A 按降序排序的情况:

这有效 [ :) ] 但看起来过于复杂 [ :( ] 并且(我怀疑)效率低下,特别是因为我需要在最后将 A 恢复为原始顺序。

我试图用std::reverse上面替换

……

但这会导致 g++ 畏缩:

我不知道如何解决它。

但这并没有给出预期的结果:!

0 投票
2 回答
2012 浏览

c++ - 在 C++ Eigen 库中变换向量数组

Eigen数学库开始,我遇到了一个非常简单的任务:使用四元数转换一系列向量。似乎我所做的一切都没有operator*找到,或者将数组与矩阵混合。

0 投票
2 回答
16142 浏览

c++ - 将数组映射回现有的特征矩阵

我想将一个双精度数组映射到现有的 MatrixXd 结构。到目前为止,我已经设法将 Eigen 矩阵映射到一个简单的数组,但我找不到返回的方法。