C++ 中矩阵的动态名称(犰狳库)
Posted
技术标签:
【中文标题】C++ 中矩阵的动态名称(犰狳库)【英文标题】:dynamic names of matrices in C++ (Armadillo library) 【发布时间】:2017-04-18 00:28:32 【问题描述】:我想在 C++(使用 Armadillo 库)中生成 k
不同的随机矩阵,其中 n 一开始不固定,是我函数的输入。在犰狳中很容易通过在for
循环中使用以下代码来生成随机矩阵:
mat A = randu<mat>(n,n);
但由于我在接下来的步骤中需要它们,我必须为它们分配动态名称或索引,例如A1, A2, .... 我想知道除了使用指针之外,哪种方法最适合这种情况?
【问题讨论】:
容器怎么样,比如std::vector<mat>
?
实在没办法做到这一点,你需要使用一个容器。由于您不知道您将拥有的矩阵数量,因此向量可能是您的最佳选择
@Nic 能否请您提及在这种情况下如何使用向量定义我的“for”循环?
我不认为代码 sn-p 真的有帮助,我建议看一个关于向量的教程
@aschepler 谢谢。它适用于我的情况。
【参考方案1】:
改用犰狳立方体可能更方便(也更有效,但尚未测试):
cube A = randu<cube>(n,n,k);
然后,该立方体中的单个矩阵将作为A.slice(i)
访问,其中 0 ≤ i ≤ k-1。就像矩阵立方体可以在运行时调整大小一样,因此您可以动态更改 n 和 k。您甚至可以使用 A.resize(n',n',k')
保留旧值
【讨论】:
以上是关于C++ 中矩阵的动态名称(犰狳库)的主要内容,如果未能解决你的问题,请参考以下文章