问题描述
我面临着看似简单的任务,但是我正在努力寻找一种有效的方法来完成它。在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 (将#修改为@)