在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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...