C# Mathnet数字索引矩阵的部分

C# Mathnet数字索引矩阵的部分,c#,math.net,C#,Math.net,使用Math.Net Numerics,如何为矩阵的部分编制索引 例如,我有一个整数集合,我想得到一个子矩阵,并相应地选择行和列 A[2:3,2:3]应该给出A的2x2子矩阵,其中行索引和列索引是2或3 var m = Matrix<double>.Build.Dense(6,4,(i,j) => 10*i + j); m.Column(2); // [2,12,22,32,42,52] var m=Matrix.Build.densite(6,4,(i,j)=>10*i+j

使用Math.Net Numerics,如何为矩阵的部分编制索引

例如,我有一个整数集合,我想得到一个子矩阵,并相应地选择行和列


A[2:3,2:3]
应该给出A的2x2子矩阵,其中行索引和列索引是2或3

var m = Matrix<double>.Build.Dense(6,4,(i,j) => 10*i + j);
m.Column(2); // [2,12,22,32,42,52]
var m=Matrix.Build.densite(6,4,(i,j)=>10*i+j);
m、 第(2)栏;//[2,12,22,32,42,52]

要访问所需列,请使用
向量列(int columnIndex)
扩展方法

我怀疑您正在寻找类似这种扩展方法的东西

public static Matrix<double> Sub(this Matrix<double> m, int[] rows, int[] columns)
{
    var output = Matrix<double>.Build.Dense(rows.Length, columns.Length);
    for (int i = 0; i < rows.Length; i++)
    {
        for (int j = 0; j < columns.Length; j++)
        {
            output[i,j] = m[rows[i],columns[j]];
        }
    }

    return output;
}
公共静态矩阵子(此矩阵m,int[]行,int[]列)
{
var输出=Matrix.Build.Dense(rows.Length,columns.Length);
for(int i=0;i

我省略了异常处理,以确保行和列不为空。

谢谢。但是如果我只想要第二列的一部分呢?我们可以使用矩阵的索引符号
M[I,j]
来表示行和列
I
j
。我刚刚读了你最新的问题,没有任何意义。无法从向量中获得子矩阵。向量基本上是一个单列/行矩阵。MathNET有很好的文档,我的建议是下载源代码并查看测试项目…好的,谢谢。可能不是向量的子矩阵,而是整数数组的子矩阵?Math.Net的
Submatrix
矩阵方法很容易为您提供子矩阵。参见See(这似乎就是本文的来源)中的示例,请阅读此处,我对这个问题的决定请阅读此处,我对这个问题的决定[here][1][1]: