我可以在 Armadillo 中实例化矩阵,然后在后面的代码行中将其设置为使用辅助内存吗?
Posted
技术标签:
【中文标题】我可以在 Armadillo 中实例化矩阵,然后在后面的代码行中将其设置为使用辅助内存吗?【英文标题】:Can I instantiate matrix in Armadillo and then set it to use auxiliary memory in a later line of code? 【发布时间】:2011-10-24 07:28:29 【问题描述】:我将犰狳与 RcppArmadillo 一起使用。是否可以用arma::mat A
声明一个矩阵,然后为我之前用arma::mat(aux_mem*, n_rows, n_cols, copy_aux_mem = true, strict = true)
创建的这个矩阵分配一些内存?
目的是从 Rcpp::NumericMatrix 创建一个犰狳矩阵,但只有if()
满足某个条件。然后稍后在同一个函数中,我想使用该矩阵,但再次只满足if()
一个条件。
【问题讨论】:
【参考方案1】:如果我理解您的问题,答案可能是是。布尔值在最后控制是否分配新内存,或者是否重用现有对象的内存。
不确定“为该矩阵分配一些内存”是什么意思。如果您希望 R 管理内存,请参阅 Writing R Extensions 手册,了解您可以做什么和不能做什么 - 关键是对于我们返回到 R 的对象,我们需要创建它们以便它们成为 R 的“原生”。而 Rcpp 可以做到这一点,而 RcppArmadillo 也可以让你做到这一点。
另外:您最好在犰狳的作者康拉德也阅读的 rcpp-devel 列表中提出这些问题。
【讨论】:
以上是关于我可以在 Armadillo 中实例化矩阵,然后在后面的代码行中将其设置为使用辅助内存吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用Armadillo和boost :: numeric :: odeint进行模板实例化