.net - 点积函数

标签 .net matrix f#

我编写了一个包含 2 个列表的点积函数:

let inline dot a b =
    List.zip a b
    |> List.map (fun (a, b) -> a * b)
    |> List.reduce (+)

有没有更好的方法来计算点积而不使用 List.zip

最佳答案

一种较短的方法是使用 List.map2:

let inline dot a b = List.map2 (*) a b |> List.sum

另一种方法是使用 List.fold2:

let inline dot a b = List.fold2 (fun state x y -> state + x * y) LanguagePrimitives.GenericZero a b

关于.net - 点积函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45198448/

相关文章:

c# - ReSharper:如何删除 "Possible ' System.NullReferenceException'”警告

.net - ASP.Net Web 服务响应时间慢

r - 使用单个函数将 colsum 和 rowsum 应用于矩阵中的每个元素

matrix - 快速可视化一个大的二进制矩阵?

F# byref 参数不可变

.net - 如何在不写程序集名称的情况下设置 WPF 图像源?

c# - 您可以将 UserId 存储在 Owin OAUTH 2 token 中吗?

c++ - OpenMP 使用矩阵乘法任务

F# 将空引用传递给 ref 参数

f# - F# 枚举类型约束的用例?