【问题标题】:Filling and manipulating matrices using MathNet.Numerics使用 MathNet.Numerics 填充和操作矩阵
【发布时间】:2015-06-17 13:50:38
【问题描述】:

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

我成功地安装了这个包。但是现在,我很难正确使用这些操作。

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

还有一点需要注意,矩阵的列数和行数总是相同的,但这个数字只在运行时才知道。

我尝试用谷歌搜索教程,找到this 之一,但我没有得到我需要知道的内容。任何帮助表示赞赏。

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

【问题讨论】:

  • 您链接的文档中对此进行了简短描述。还有什么不清楚的? numerics.mathdotnet.com/…
  • @ChristophRüegg 如果我说我跳过了“操纵矩阵和向量”部分,你会相信我吗?好吧,我会再读一遍,只是为了确定。感谢您抽出宝贵时间回答一个糟糕的失败问题。
  • 不用担心,但如果您对如何改进它有任何建议,请告诉我们。

标签: c# matrix linear-algebra mathnet-numerics numerics


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多