访问UBLAS稀疏向量中的非零元素索引

时间:2011-09-21 14:58:28

标签: c++ boost sparse-matrix ublas

如何知道ublas中的sparse_vector中的第一个非零元素的索引以及每个后续的非零元素?函数begin()给我一个迭代器,可以用来知道存储的第一个非零值,而不是它在向量中的索引。

2 个答案:

答案 0 :(得分:1)

在Oswin Krause之后,来自ublas mainling列表的答案如下:

  

迭代器提供一个返回所需结果的方法index()。但   记住只有const_iterator真的很稀疏!

     

for(SparseVector :: const_iterator pos = sparseVec.begin(); pos!=   sparseVec.end(); ++ pos){std :: cout<< pos.index()<< “”<< * POS机; }

答案 1 :(得分:0)

如果没有对矢量进行线性扫描,这似乎是不可能实现的。 API根本不会暴露非零指数。 (如果我是你,我会写给作者,因为他们隐瞒了在序列化稀疏向量时非常有用的信息。)

我过去曾遇到类似UBLAS稀疏矩阵的问题,最终迫使我自己动手。