将float [,]转换为f#中的列表?

一世

我有一个可以很好地用于列表的函数,但是该函数的输入float[,]来自外部系统/语言。

我读了这个,但是当我应用这个的时候我得到了一个错误float[,] is not compatible with Seq<a'>但是,此列表也仅是浮点数。

清单功能:

let aggrArraysL data =
    data
    |> Seq.groupBy (fun (a, b, c) -> a)
    |> Seq.map (fun (key, group) ->
        group |> Seq.reduce (fun (a, b, c) (x, y, z) -> a, b + y, (b * c + y * z * 1.)/(b + y)))

数组尝试:

let aggrArrays (data2 : float[,]) =
    data2
    |> Seq.toList
    |> Seq.groupBy (fun (a, b, c) -> a)
    |> Seq.map (fun (key, group) ->
        group |> Seq.reduce (fun (a, b, c) (x, y, z) -> a, b + y, (b * c + y * z * 1.)/(b + y)))
    |> Seq.toArray

我要去哪里错了?谢谢!

背风处

实现2D数组,IEnumerable因此您可以使用Seq.cast<T>以下命令进行投射

let toList (data2: float[,]) = data2 |> Seq.cast<float> |> Seq.toList

您可能希望使其通用:

let toList<'a> (data2: 'a [,]) = data2 |> Seq.cast<'a> |> Seq.toList

编辑:看起来您想将数组映射到行元素列表,而不是将其展平。在这种情况下,您可以执行以下操作:

let aggrArrays (data2:float[,])  =
    [0 .. (Array2D.length1 data2) - 1]
    |> List.map (fun i -> (data2.[i, 0], data2.[i, 1], data2.[i, 2]))
    |> Seq.groupBy id
    |> Seq.map (fun (key, group) -> group |> Seq.reduce (fun (a,b,c) (x, y, z) -> a, b+y , (b*c+y*z*1.)/(b+y)))
    |> Seq.toArray

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

F#将obj [,]强制转换为float [,]

来自分类Dev

将枚举转换为F#中的列表或序列或通用集合类型

来自分类Dev

F#可观察-将事件流转换为列表

来自分类Dev

将python列表转换为float

来自分类Dev

F#将hmac python转换为f#

来自分类Dev

F#将hmac python转换为f#

来自分类Dev

将C代码转换为F#

来自分类Dev

F# 将 Seq 转换为 ICollection

来自分类Dev

无法将“ float *”转换为“ float”

来自分类Dev

错误无法将“ float *”转换为“ float”

来自分类Dev

将FLOAT转换为SQL中的DATE?

来自分类Dev

将char转换为c中的float

来自分类Dev

将Float转换为Int

来自分类Dev

将PoolByteArray转换为float

来自分类Dev

将float转换为int

来自分类Dev

将float转换为整数

来自分类Dev

将float转换为sprintf

来自分类Dev

无法在初始化时将 float float 转换为 float

来自分类Dev

如何将XmlProvider <...>。DomainTypes自动提供的选择类型转换为F#中的枚举?

来自分类Dev

如何将NetMQ中的ReceiveReady方法从C#转换为F#

来自分类Dev

如何将XmlProvider <...>。DomainTypes自动提供的选择类型转换为F#中的枚举?

来自分类Dev

Haskell sqrt-将整数列表转换为Float

来自分类Dev

将列表中的列表转换为字典

来自分类Dev

F#-将数组转换为列表

来自分类Dev

将复杂的Map数据结构转换为F#

来自分类Dev

将C#委托转换为f#

来自分类Dev

F#将元组转换为函数参数

来自分类Dev

将F#函数转换为Expression <Func <.... >>

来自分类Dev

F#:将元组转换为哈希表