Mathnet数字索引矩阵的部分

时间:2015-06-03 09:41:14

标签: c# mathdotnet

使用Math.Net数字,如何索引矩阵的各个部分?

例如,我有一组int,我希望得到一个子矩阵,相应地选择行和列。

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

2 个答案:

答案 0 :(得分:0)

只需使用

之类的东西
var m = Matrix<double>.Build.Dense(6,4,(i,j) => 10*i + j);
m.Column(2); // [2,12,22,32,42,52]

要访问所需的列,请使用Vector<double> Column(int columnIndex)扩展名方法。

答案 1 :(得分:0)

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

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;
}

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