2013-10-04 81 views
0

我有一個obj[,]其組件都是float s。我想將它轉換爲float[,]。我嘗試了box,unbox,Array2D.map float,Array2D.copy, System.Convert.ChangeType等許多排列,似乎沒有任何工作。如何進行?F#cast obj [,]浮動[,]

+1

向我們展示你嘗試了一些代碼,並說明它是如何準確地不靈。是否有編譯器錯誤,運行時異常,意外輸出或其他? –

回答

3

這似乎只是正常工作對我來說:

let boxedArray = Array2D.init 2 2 (fun x y -> box (float (x + y))) 
let unboxedArray = boxedArray |> Array2D.map unbox<float> 

printfn "%A" (boxedArray.GetType()) // System.Object[,] 
printfn "%A" (unboxedArray.GetType()) // System.Double[,] 
+0

明白了。我正在嘗試'boxedArray |> unbox |> Array2D.map float',並得到一個運行時的'System.InvalidCastException' – kevinykuo