c ++中的矩阵库

时间:2010-07-27 06:56:46

标签: c++ matrix

我在矩阵中有很多元素,当我手动访问它们时,需要很长时间来消除错误索引引起的所有错误...是否有合适的库可以跟踪例如邻居,编号,如果元素在外边缘或不在等等。

e.g。

VA=
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44

现在我想做的是编写一个类似

的函数
for every Neighbor to element at index 12(which would be 41)
 do something

我希望这只能识别索引8(31)和13(42)的元素。

现在我正在使用向量(vector<vector<int>>V;),但由于我在每个函数中都有这些烦人的if语句,因此编写和读取代码变得非常困难和笨拙。 例如:

     for (int i=0;i<MatrixSIZE;i++)
        if ((i+1)%rowSize!=0){//check that it's not in the outer edge.
    //Do something
}

您会建议采用什么方法? 可以提升:: MultiArray以某种方式帮助我吗?还有其他类似的吗?

UPDATE :: 因此,我正在寻找一个可以轻松访问元素的模板,而不是可以执行矩阵算法的模板。

4 个答案:

答案 0 :(得分:1)

尝试LAPACK,一个线性代数包。

答案 1 :(得分:0)

有:http://osl.iu.edu/research/mtl/

或者:http://www.robertnz.net/nm_intro.htm

如果你谷歌了一下,那里有很多用于C ++的矩阵库。

答案 2 :(得分:0)

这可能会激励你:

Matrix classes in c++

答案 3 :(得分:0)

它是否用于更大的程序?如果没有,它将更适合使用R来处理矩阵。

如果它在较大的程序中,您可以使用诸如MTL之类的库。