C# Mathnet数字索引矩阵的部分
使用Math.Net Numerics,如何为矩阵的部分编制索引 例如,我有一个整数集合,我想得到一个子矩阵,并相应地选择行和列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
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]: