问题标签 [armadillo]

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 投票
3 回答
4674 浏览

r - 在 RcppArmadillo 中将列向量乘以数值标量

我在使用和包编译这个简单的c++代码时遇到了一些麻烦。举一个简单的例子,将矩阵的每一列乘以一个数值标量:RcppRcppArmadillo

试图编译这个使用...

导致编译错误....

但是,如果我们将numeric变量交换v2.0如下......

它编译得很好......

然后我们可以做...

我在这里想念什么?如何使用简单的数字标量进行这项工作。我希望能够传递一个标量,如......

并返回与上面相同的结果。

0 投票
1 回答
258 浏览

c++ - 使用相同的内存在犰狳中进行 LU 分解

我有问题要使用犰狳解决线性系统。A*x=b。但是我的 A 矩阵很大。它是 arma::cx_mat A(40000,40000)。当我运行 x=arma::solve(A,b) 时,犰狳会尝试分配一个新的内存来存储 A,然后使用新的内存进行 LU 分解,不会使用存储原始 A 的内存。求解的定义可以在 fn_solve.hpp 中找到。但是你已经看到我的 A 很大了。分配一个新的内存会很快消耗掉所有的内存。对于我的问题,我不再需要原来的 A 了。那我能不能用一些方法让犰狳利用A的原始内存来做LU分解呢?

非常感谢

0 投票
1 回答
2854 浏览

c++ - 犰狳中的矢量化幂函数

犰狳库具有将pow(A, p)向量/矩阵的所有元素提升A到幂的功能p。犰狳、std 或其他地方是否有执行元素级功能的函数?也就是说,将向量中的每个元素提升到向量A中的相应幂p

0 投票
2 回答
2147 浏览

c++ - 犰狳 join_cols() 编译错误

我正在尝试用犰狳做一些简单的凸编程,但我可能会迷失在语法(或安装)中。

我有以下内容:

它给了我编译错误:

我在其他地方也遇到了类似的错误。我也在尝试将 sp_mat(或 SpMat)与 inv() 或 solve() 一起使用,而无需骰子。事实上,除了元素访问和基本算术之外,似乎没有任何东西可以工作。我有安装问题还是我的语法错误?

我在 Ubuntu 12.04 上运行它。

编辑:

基于鲁道夫的回答,我似乎忽略了一些给出的错误!

似乎以下工作:

但这不会:

原因是 Armadillo 进行了内部优化,可以在预编译步骤中重新排列表达式,但正因为如此,并且 join_cols() 没有足够的原型来处理所有的胶水语句(标量 mult,向量加法)等)它在犰狳可以预处理之前就失败了。至少,这是我过于简化的观点。

0 投票
1 回答
1845 浏览

c++ - 犰狳错误:没有匹配函数调用 'inv(arma::SpMat&)'

这是上一个问题的延续 - 主要是围绕 Armadillo C++ 库中对 SpMat(或 sp_mat)的支持。

尝试反转稀疏矩阵时,出现编译错误

我宁愿不为 sp_mat 编写自己的矩阵求逆,除非我真的必须这样做,而且我不能使用 inv(arma::Mat&) 原型,因为我将要操作的稀疏矩阵会占用数百 GB 的 RAM如果它被转换为非稀疏矩阵。

还有,怎么办

sp_mat 不是连接列的受支持类型吗?

任何帮助将非常感激!

编辑:关于稀疏矩阵求逆错误的重点问题。正在使用的犰狳版本是 3.910.1

0 投票
1 回答
5155 浏览

c++ - 在犰狳库中引用向量的最快方法

我将犰狳用于线性代数。我设置了一个相当大的向量(至少 35000000 个元素)。我有另一个长度为大向量一半的向量。我正在使用 fftw 对大向量进行傅立叶变换,但数据的前半部分是从小向量复制的,如下所示

这段代码非常慢,因为我们需要将元素从 v2 复制到 v1 并向后复制。无论如何让v1的元素引用v2而不是副本?

0 投票
1 回答
3211 浏览

vector - Armadillo C++ 线性代数库:如何创建布尔向量

最近我开始使用 Armadillo C++ 库。鉴于我的 C++ 编码技能不是很好,我发现这对线性代数非常友好。我还使用它和我的 matlab 来加快许多重建算法的速度。

我确实需要创建一个布尔向量,我更喜欢使用这个库而不是 . 但是,我不知道该怎么做。我尝试使用 uvec;但是,文档似乎表明它不能与布尔值一起使用。

任何帮助,将不胜感激。

问候, Dushyant

0 投票
1 回答
4491 浏览

c++ - 在 C++ 中存储大矩阵(犰狳)

我正在使用 C++ 中的Armadillo库来存储/计算大型矩阵。我的理解是应该动态地存储大型数组/矩阵(在堆上)。

假设我声明了一个矩阵

并将大小设置为(比如说)500 行,500 列随机条目:

犰狳是否X动态存储(即在堆上),尽管不使用newor delete.?我问的原因是,似乎犰狳允许我将变量声明为:

其中,我引用:“通常比动态内存分配更快,但矩阵的大小不能在之后(直接或间接)更改”。

不管以上 - 我应该使用这个:

或这个:

其中 n 介于 1000 或 100000 之间,并且事先不知道。

0 投票
1 回答
503 浏览

c++ - 以最优方式对矩阵方程进行数值求解

0 投票
1 回答
451 浏览

c++ - 使用 QMathGL 连接信号和插槽

我有一个程序,它使用MathGL绘制一些简单的数据,并使用 a 显示它QMainWindow

main.cpp

mainwindow.h

mainwindow.cpp

plot.h

plot.cpp

}

我用它QMenu来创建菜单,效果很好,但按钮还没有功能。我的问题是,如何以及在哪里实现所有菜单按钮的功能的最佳方式?

抱歉发了很长的帖子:)

提前致谢!