如何解决在Rcpp-Armadillo中有效选择稀疏矩阵的非连续列
我面临着看似简单的任务,但是我正在努力寻找一种有效的方法来完成它。在Armadillo中,我定义了一个稀疏矩阵(sp_mat),我想提取其中的许多非连续列。不幸的是,稀疏矩阵不支持非连续视图,因此我为此编写了自己的函数:
arma::sp_mat col_sp(const arma::sp_mat& x,const arma::uvec& index) {
int n_cols = index.n_elem;
arma::sp_mat x_subset(x.n_rows,index.n_elem);
for(int i=0; i<n_cols; i++){
x_subset.col(i) = x.col(index(i));
}
return x_subset;}
但是,我担心每次我向x_subset
添加新列时,此函数都会创建新副本和/或重新分配内存。确实是这样吗?如果是,是否有更好的方法来获得所需的子矩阵?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。