eigen相关内容

按行向Eigen :: MatrixXd进行线程安全写入

我的问题很简单,希望也有一个不错的答案:当我构造了 Eigen :: MatrixXd 矩阵时,我可以使用多个线程来填充行吗?同时矩阵(如果我可以确保没有并发写入任何行),还是必须在每个线程中创建临时行对象,然后将它们复制(哦...)作为归约操作复制到矩阵中? / p> 解决方案 虽然不从不同的线程写入同一地址,这可能是线程安全的,因为 Eigen :: MatrixXd 是列的主要存储, ..
发布时间:2020-10-27 23:47:52 其他开发

在Eigen中将向量分配给矩阵列

这个问题急匆匆地问了。我原始程序中的错误,不是此处显示的代码中的错字。错误是我的程序v由于某些条件而没有填充。 从该线程获取的更有用的收获是将std :: vector复制到本征矩阵的所有行或列,在接受的答案中。 我想将向量复制到a的列中矩阵,如下所示: #include #include #include ..
发布时间:2020-10-27 23:46:44 C/C++开发

R中的C ++编译标志的替代系统默认值

我正在使用RcppEigen为我的R代码编写一些C ++函数,并且我想尽可能地优化它们的编译。过去使用Eigen时,我从-O3和-fopenmp获得了巨大的进步。遵循Dirk的建议,我对〜/ .R / Makevars进行了编辑,以便我的本征代码能够可以使用以下标志进行编译: CPPFLAGS = -O3 -fopenmp 这有效-当我检查编译期间发生的情况时(ps ax ..
发布时间:2020-10-27 23:46:37 C/C++开发

本征动态矩阵初始化

我在弄清楚如何在Eigen的运行时设置MatrixXd的行和列时遇到了一些麻烦。谁能指出我的一些文档或提供有关如何执行此操作的指导? 谢谢。 解决方案 您可以在运行时使用方法 resize(nrow,ncol)定义MatrixXd大小。您可以在此链接及其API定义此处。 ..
发布时间:2020-10-27 23:46:32 其他开发

将平面数组重塑为复杂的本征类型

如何将尺寸 1×2N 的数据重塑为Eigen中的复杂形式,以形成 P×Q 复矩阵,具有 N 复数, P×Q = N ?在数据中,实部和虚部彼此相邻。我想动态重塑 data ,因为数据可以具有不同的大小。我试图防止复制,只是将数据映射到复杂类型。 int N = 9; int P = 3; int Q = 6; float * data =新的float [2 * N]; f ..
发布时间:2020-10-27 23:46:26 C/C++开发

从Eigen库使用SVD时抛出错误的分配异常

在我的应用程序中,我想从具有 double 项的给定数据矩阵中获得左奇异矢量,这在代码中以 $ b给出$ b Eigen :: MatrixXd m; ,尺寸为 45 x 904140 。现在,我将构造函数用于Eigen库中的SVD分解,如下所示: Eigen :: BDCSVD svd(m,Eigen :: ComputeFullU | Ei ..
发布时间:2020-10-27 23:45:20 C/C++开发

本征矩阵库逐系数取模运算

在我正在研究的项目中的一个功能中,我需要找到特征库矩阵除以给定数字后每个元素的其余部分。这是等效于我想做的Matlab: mod(X,num) 其中X是股利矩阵,num是除数。 什么是 解决方案 您可以将C ++ 11 lambda与 unaryExpr : MatrixXi A(4,4),B; A.setRandom(); B = A. ..
发布时间:2020-10-27 23:44:16 C/C++开发

使用本征张量类的问题

我想使用来自不受支持模块的特征张量类 。该网站建议包含类似 #include 之类的东西,以便能够使用它。我在OS X Yosemite的Mac上通过 Homebrew (版本3.2.4)安装了eigen。尽管我让eigen可以正常工作,但在不受支持的文件夹中找不到必要的模块: #include ..
发布时间:2020-10-27 23:44:12 C/C++开发

cygwin_exception :: open_stackdumpfile:将堆栈跟踪信息转储到* .exe.stackdump

我收到“ cygwin_exception :: open_stackdumpfile:将堆栈跟踪信息转储到TestProject.exe.stackdump”错误。我的项目不过是C ++ HalloWorld项目,其中包含一个附加的类,可以在其中设置和获取变量。我在尝试设置Eigen类型的矩阵变量的行上遇到此错误。这是我的代码: TestProject.cpp #include&l ..
发布时间:2020-10-27 23:44:08 Java开发

将两个矩阵与本征进行比较

假设我有两个本征矩阵A和B,并且我想创建一个第三矩阵,定义为 C(i,j)= 5.0,如果A( i,j)> B(i,j),否则为0 我想没有显式的for循环也可以这样做。但是我对Eigen并不是很熟练。谁是最好的方法? 解决方案 假设 A , B 和 C 是 MatrixXd ,您可以执行以下操作: C =(A.array()> B.Array())。cast ..
发布时间:2020-10-27 23:43:04 C/C++开发

在本征稀疏矩阵中将行/列/块设置为0?

我看到使用新的Eigen 3.2,您可以从稀疏矩阵中获取行,列甚至块,是否可以将其中的任何一个设置为0? Eigen :: SparseMatrix A(5、5); A.block(1,1,2,2)= 0; //无法使用 A.row(1)= 0; //无法使用 A.col(1)= 0; //无法使用 谢谢! ..
发布时间:2020-10-27 23:43:02 其他开发

如何使用Eigen避免稀疏表达式中的内存分配

我有一个稀疏模式恒定的应用程序。可以说我的计算形式为 sm3 = sm1 + sm2 但是,即使我将所有这些操作数的稀疏模式都设置为相同,我的探查器显示大部分时间都花在了分配和取消分配上结果矩阵。 这是我的MWE: #include #include int mai ..
发布时间:2020-10-27 23:42:58 C/C++开发

MSYS2上gcc 8.2.1的本征编译错误

我们正在面对错误针对Eigen 3.3.7(可能是较旧的版本)进行了编译),而不是MSYS2提供的最新版本的GCC 8.2.1。奇怪的是,这仅在相同软件包的最新版本中发生( mingw-w64-x86_64-gcc 8.2.1): 8.2.1 + 20181123-1:很好 8.2.1 + 20181130-1:错误 8.2.1 + 20181207-1:错误 错误是: 在C ..
发布时间:2020-10-27 23:41:52 C/C++开发

如何解决稀疏矩阵的线性方程AX = b

我有一个稀疏矩阵A(120,000 * 120,000)和一个向量b(120,000),我想使用本征库求解线性系统AX = b。我尝试按照文档进行操作,但始终出现错误。我还尝试将矩阵更改为稠密并求解系统 Eigen :: MatrixXd H(N,N); HH = Eigen :: MatrixXd(A); Eigen :: ColPivHouseholderQR ..
发布时间:2020-10-27 23:41:50 C/C++开发

重塑C ++中的张量

TensorFlow的C ++接口似乎没有重塑方法。有谁知道如何转换例如 [A,B,C,D] 转换为 [A * B,C,D] ?看起来唯一的方法就是使用Eigen?但是,那里的文档非常苗条,并且代码是模板地狱,不容易解析。 解决方案 解决方案,检查是否重塑张量与源张量的元素数量相同: ///从MobileNet_224中提取的图像特征 tensorflow :: Tensor i ..
发布时间:2020-10-27 23:40:46 其他开发

Visual Studio2015。C++编译器错误C2280试图引用已删除的函数

我要做的是编译由CMake构建的项目。在我的代码中,我有下一个方法: / ** TriangularView :: solve()的“就地”版本,其中结果以“其他 * *警告”形式编写。此参数仅标记为“ const”,以使C ++编译器在此处接受临时表达式。 *此函数将const_cast它,因此此处不遵守constness。 * *有关详细信息,请参见Triangula ..
发布时间:2020-10-27 23:40:40 C/C++开发