【发布时间】:2015-03-11 06:48:03
【问题描述】:
如何在 Armadillo C++ 中获取一组非零位置(索引)和稀疏矩阵的值?
到目前为止,我可以轻松地构造一个包含一组位置(作为 umat 对象)和值(作为 vec 对象)的稀疏矩阵:
// batch insertion of two values at (5, 6) and (9, 9)
umat locations;
locations << 5 << 9 << endr
<< 6 << 9 << endr;
vec values;
values << 1.5 << 3.2 << endr;
sp_mat X(locations, values, 9, 9);
如何取回位置?例如,我希望能够做这样的事情:
umat nonzero_index = X.locations()
有什么想法吗?
【问题讨论】:
-
您的代码有一个错误:不是
X(locations, values, 9, 9),而是X(locations, values, 10, 10)。因为 C++ 从 0 开始计数,所以位置 (9,9) 指的是第 10 行和第 10 列。 -
哦,很好。谢谢!
标签: armadillo