我试图用Matrix<float>
在MathNet.Numerics
中查找最小值的索引,但仅针对满足特定条件的值(在这种情况下为value >= 0
)。
我可以找到这样的最小实际值之一:
var mat = Matrix<float>.Build.DenseOfArray(new float[,] {
{2, 3, 1},
{3, -1, 5},
{1, 4, 3}
});
var min = mat.Enumerate().Where(x => x >= 0).Min();
但是我想找到两个1(而不是-1)的索引。因此结果应为[0,2]和[2,0]。
答案:
我找到了一种可能的方法,不确定这是否是最好/最快的方法:
var min = mat.Enumerate().Where(x => x >= 0).Min();
var allMin = mat.EnumerateIndexed().Where(x => x.Item3 == min).ToList();