使用MathNet.Numerics填充和操作矩阵

时间:2015-06-17 13:50:38

标签: c# matrix linear-algebra mathnet numerics

我正在编写一个代码,我需要代表少量矩阵(大约10个)并对它们进行一些操作(比如获取反转,转置等)。我的一位同事推荐使用Math.Net Iridium库。推荐页面表示该项目已停止并与MathNeh.Numerics合并,找到here

我设法成功安装包。但现在,我正在努力正确使用这些操作。

总结一下,我要问的是:如何将数据放入矩阵并使用MathNet.Numerics进行操作?例如,如何将值添加到特定行x列y在给定矩阵m1中。它是否允许我们访问特定索引?

还有一点需要注意,矩阵将始终具有相同数量的列和行,但此数字仅在运行时才知道。

我已经尝试过google for tutorials,发现this一个,但我没有得到我需要知道的东西。任何帮助表示赞赏。

- PS:我到目前为止使用的方法是创建嵌套列表来表示每个矩阵,并使用for循环来填充它。我相信当转换/反转/乘法的时间到来时,我会很难过。

1 个答案:

答案 0 :(得分:1)

答案在问题本身链接的文档中。 http://numerics.mathdotnet.com/Matrix.html#Manipulating-Matrices-and-Vectors

给出的例子是:

var m = Matrix<double>.Build.Dense(3,4,(i,j) => 10*i + j);
m[0,0]; // 0   (row 0, column 0)
m[2,0]; // 20 (row 2, column 0)
m[0,2]; // 2   (row 0, column 2)
m[0,2] = -1.0;
m[0,2]; // -1