我正在处理一个代码,我需要表示少量矩阵(大约 10 个)并对它们进行一些操作(例如获取逆矩阵、转置等)。我的一位同事建议使用 Math.Net 铱星库。引用的页面说该项目已停止并与MathNeh.Numerics
合并,在这里找到。
我设法成功安装了该软件包。但是现在,我正在努力正确使用这些操作。
综上所述,我要问的是:如何将数据放入矩阵并使用MathNet.Numerics
操作它们?例如,如何将值添加到给定矩阵 m1 中的特定行 x 列 y。它是否允许我们访问特定索引?
还有一点需要注意,矩阵将始终具有相同数量的列和行,但此数字仅在运行时已知。
我试图在谷歌上搜索教程,找到了这个,但我没有得到我需要知道的东西。任何帮助,不胜感激。
--PS:到目前为止,我使用的方法是创建嵌套列表来表示每个矩阵,并使用for循环来填充它。我相信当转置/反转/乘法的时候到来时,我会很难过。
答案就在问题本身链接的文档中。 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