2011-06-08 77 views
5

我正在做一个模拟,我必须计算许多平均值,我认为使用boost :: accumulators将是一个好主意。问题是我想要平均的一个量是一个对称矩阵,其对角线事先已知。所以我只需要计算Q [i] [j]的平均值,如果我是< j。对称阵列数据结构C++

起初,我得到了,我可以用一个

using namespace boost::accumulators; 
using namespace boost::numeric::ublas; 
typedef accumulator_set<double, stats<tag::mean> > accumulator; 

symmetric_matrix<accumulator, lower> foo; // a symmetric matrix of accumulators 

持本人蓄电池的印象。但是后来我想到这个symmetric_matrix结构可能足以仅保存数值(它们具有定义的算术运算)或者以某种方式针对这种数据进行了优化。这是正确的吗?

如果来自boost的symmetric_matrix不足,我需要一个数据结构,它可以容纳一个对称矩阵的下三角形而不用对角线,并且它必须适合于保持累加器并且具有像句法一样的好矩阵。这是从某个图书馆随时可用的吗?如果不是,这种结构有没有简单的实现?

+2

增强矩阵中没有任何要求元素类型为数字的东西。除了矩阵算术运算符当然,但如果你不使用它们,它们不会被实例化。 – 2011-06-08 20:30:35

回答