В этом вопросе я спросил, как проделайте аналогичную операцию с помощью PowerPack. Вместо этого я решил использовать MathNet, так как он предназначен для .Net в целом, а не только для F#.
Мне нужна функция, которая принимает 2 матрицы и выводит процент согласия. Все значения в матрицах равны 1,0 или -1,0. Видимо матрицы типа Matrix(int) не поддерживаются.
Я придумал функцию, которая выполняет это, но я подозреваю, что есть более прямой способ сделать это, предпочтительно используя функциональные возможности класса Matrix.
Вот что у меня есть:
let percentageTheSame (a:Matrix<float>) (b:Matrix<float>) =
let seqA = a |> Matrix.toSeq
let seqB = b |> Matrix.toSeq
let sames = Seq.map2 (fun a b -> (a,b)) seqA seqB |> Seq.filter (fun (a, b) -> a = b)
float(sames.Count())/float(seqA.Count())
Seq.zip
вместоmap2
. - person John Palmer   schedule 19.12.2014