问题标签 [eigen3]

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 回答
543 浏览

c++ - 在 Visual Studio 2010 中加快 Eigen 库的性能

为了提高 Visual Studio 2010 中 Eigen 库的性能,我应该更改哪些设置以及在哪里设置?换句话说,在 gcc 中,有一个选项可以打开优化-O3,我如何在 Visual Studio 中打开优化(如果可能的话)?

0 投票
3 回答
711 浏览

c++ - 检查类型是否为 Eigen3 类型

Eigen3 和内置类型互兼容

大家好。我遇到了编写可以同时处理 Eigen3 类型(矩阵和数组)和内置类型的例程的问题。我可以用一个例子来最好地解释这一点:假设我有一个Meter<Type>模板类,它能够在运行时收集统计信息。

Type 类应支持以下运算符:

  • operator=(Scalar)
  • operator=(Type)
  • operator+(Type)
  • operator-(Type)
  • operator*(Type)
  • operator/(Type)
  • operator*(Scalar)
  • operator/(Scalar)

Eigen3types 为所有这些运算符提供了两个例外:首先,如果是 的某个子类,则operator*(Type)表示点推导;如果是Type的某个子类,则Eigen::MatrixBase表示系数乘积。我可以很容易地解决这个问题;其次,两者都没有实现确保正确初始化为零的要求。TypeEigen::ArrayBaseoperator=(Scalar)

我尝试实现以下仿函数类来帮助我处理区别,但我无法让它们工作:

一些结构来处理内置类型和Eigen3类型之间的区别:

函数实现本身

专用版本set_const_impl<EigenType>永远不会被实例化。例如,如果我打电话

我让编译器0在线投诉

说它0不能隐式转换为Eigen::Matrix<double, 3, 1>,这意味着它选择了set_const_impl<Scalar, true>仿函数的版本(其中两个参数共享一个公共类型Scalar)。这也意味着我的is_scalar构造在这种情况下不起作用,即使我已经使用它并在其他类上测试它没有问题。

我在其他几个类中需要这种行为,我不想明确地专门化它们中的每一个!任何人都知道我应该怎么做才能解决这个问题?

提前感谢您的帮助!

0 投票
3 回答
3147 浏览

c++ - 新值的保守调整大小()为零

调整矩阵大小后如何将新值设置为零?调整矩阵大小后,新值被设置为垃圾值,而不是至少设置为零,这真的很奇怪。

结果

在此处输入图像描述

0 投票
1 回答
9200 浏览

optimization - Eigen3:就地系数乘法

如何使用 Eigen3 执行元素乘法?

原地跑?或者是

在风格和性能方面更好的解决方案?

0 投票
2 回答
9417 浏览

c++ - 如何从二进制文件中写入/读取特征矩阵

要将 Eigen::Matrix 写入文件,我真的很喜欢使用以下内容:

但不幸的是,没有定义可以做相反的事情:

为了规避这个问题,你怎么能读/写 Eigen::Matrix 到二进制文件呢?

0 投票
0 回答
499 浏览

c++ - 在 Visual Studio 2012 中检查特征矩阵值

我目前正在使用 Visual Studio 2012。我知道为了可视化 Eigen3 库中的矩阵条目,我必须按照此处所述进行操作。但是,当我尝试了其中描述的两种方法时,在 Visual Studio 中调试时仍然无法显示矩阵条目。有没有人有同样的问题,你是如何解决的?谢谢!

0 投票
2 回答
1293 浏览

c++ - 使用 Eigen 库执行 sparseLU 并显示 L & U?

我是Eigen的新手,我正在处理稀疏 LU 问题。我发现如果我创建一个向量 b(n),Eigen可以计算 Ax=b 方程的 x(n)。

问题:

  1. 原矩阵A的因式分解结果L&U如何显示?

  2. 如何在Eigen中插入非零值?现在我只是用一些小的稀疏矩阵进行测试,所以我一个一个地插入非零,但是如果我有一个大规模的矩阵,我怎么能在我的程序中输入矩阵呢?

0 投票
2 回答
1676 浏览

c++ - 矩阵向量 cwiseProduct 操作的 Eigen3 replicate()

我有以下代码:

输出:

有没有比使用replicate()调用更有效的方法来实现这一点?

0 投票
0 回答
284 浏览

c++ - 为什么不能把 Eigen Map 放到一个类中?

我尝试将 Eigen Map 放入类的定义中,但它无法通过编译器。以下是“ex.cc”文件。

编译器说:

我不知道为什么。除了将 Map 放入一个类之外,我所做的与此处描述的完全一样。

0 投票
5 回答
10353 浏览

c++ - 如何在 Eigen 库中计算稀疏矩阵的逆

我对 C++ 中的 Eigen 库有疑问。实际上,我想计算稀疏矩阵的逆矩阵。当我在 Eigen 中使用密集矩阵时,我可以使用 .inverse() 运算来计算密集矩阵的逆。但是在稀疏矩阵中,我在任何地方都找不到逆运算。有谁知道计算稀疏矩阵的逆?帮我。