Repa fromListUnboxed
允许从值列表中创建一维数组。但是如何在给定一维未装箱的(长度相等)的列表的情况下创建一个二维的?
答案 0 :(得分:1)
使用reshape
功能:reshape :: (Shape sh1, Shape sh2, Source r1 e) => sh2 -> Array r1 sh1 e -> Array D sh2 e
。
它只是编译时间(没有运行时开销)。
答案 1 :(得分:0)
我也偶然发现了这个问题。我通过转换列表来解决它 数组到未装箱的向量,将它们连接起来,然后将它们转换回 repa数组。非常笨拙,但这就是我能想到的。
import Data.Array.Repa as R
import Data.Vector.Unboxed as V
import Prelude as P
arrs = P.replicate 5 $ fromListUnboxed (ix1 10) [0..9 :: Int]
main = print concatenatedArrs
where vectors = P.map toUnboxed arrs
concatenatedVectors = V.concat vectors
concatenatedArrs = fromUnboxed (R.ix2 5 10) concatenatedVectors