gpt4 book ai didi

haskell - 字节串到向量的转换

转载 作者:行者123 更新时间:2023-12-04 18:59:16 24 4
gpt4 key购买 nike

我有一个 ByteString包含 Float 的表示s。每个FloatByteString 中的 3 个字节表示.

我需要对 Float 做一些处理值,所以我想在 Vector 上执行该处理的 Float值(value)观。最好的方法是什么?

我有一个函数toFloat :: [Word8] -> Float转换 ByteString 的 3 个字节到一个 float 。所以我正在考虑迭代 ByteString以 3 字节为单位,并将每一步转换为 Float对于 vector .

我查看了 Vector 的库函数但我找不到任何适合这个目的的东西。 Data.Vector.Storable.ByteString.byteStringToVector看起来很有希望,但它转换每个字节(而不是每 3 个字节),并且无法控制 ByteString 的转换方式至Float应该发生。

最佳答案

只需使用 Data.Vector.generate :

V.generate (BS.length bs `div` 3) $ \i ->
myToFloat (bs BS.! 3*i) (bs BS.! 3*i+1) (bs BS.! 3*i+2)

它将一次分配所有向量,并填充它。 Data.ByteString.!是 O(1),所以这是非常有效的。

关于haskell - 字节串到向量的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41847758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com