Mat hNet. Числа находят индексы минимумов в матрице, удовлетворяющие условию - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь найти индексы минимальных значений в 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). Таким образом, результат должен быть [0,2] и [2,0].

ОТВЕТ:

Я нашел возможный способ сделать это, не уверен, что это это лучший / самый быстрый способ:

var min = mat.Enumerate().Where(x => x >= 0).Min();
var allMin = mat.EnumerateIndexed().Where(x => x.Item3 == min).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...