在Matlab中,我为稀疏矩阵分配空间,如下所示:
%Notice "Const_Block_Upper" is a dense matrix
%Number of nonzero element
nz = size(Const_Block_Upper,1)*size(Const_Block_Upper,2)*No_of_Voxels;
SizeR = No_of_Voxels*size(Const_Block_Upper,1)
SizeC = No_of_Voxels*size(Const_Block_Upper,2);
%Allocates space for sparse matrix of size (SizeR, SizeC) with atmost nz non-zeros
A = spalloc(SizeR, SizeC, nz);
我想知道我是否可以在C ++ lib Armadillo中做类似的事情。我查看了犰狳的文件;但是,找不到类似的东西。
一些帮助将不胜感激。
答案 0 :(得分:2)
我想知道您查看的文档的哪一部分,因为the official documentation包含很多关于稀疏矩阵类型的内容。例如关于批量插入:
编辑:啊,我现在理解你的问题;你想预先分配元素存储所需的空间;我担心基础稀疏矩阵存储格式不可能这样做......批量插入构造函数:
form 1: sp_mat(locations, values, sort_locations = true) form 2: sp_mat(locations, values, n_rows, n_cols, sort_locations = true, check_for_zeros = true) form 3: sp_mat(add_values, locations, values, n_rows, n_cols, sort_locations = true, check_for_zeros = true) form 4: sp_mat(rowind, colptr, values, n_rows, n_cols)