如何在Clojure中创建一个原始的二维(2d)双精度数组?
我正在与Clojure互操作的Java API要求我向它传递一个2d双精度数组;双[][]。如何在Clojure中创建一个原始的2d双精度数组?我正在寻找这样的东西
(double-array-2d [[1 2] [3 4]])
此函数的 Java 返回类型为 double[][]。
我正在与Clojure互操作的Java API要求我向它传递一个2d双精度数组;双[][]。如何在Clojure中创建一个原始的2d双精度数组?我正在寻找这样的东西
(double-array-2d [[1 2] [3 4]])
此函数的 Java 返回类型为 double[][]。
试试这个:
(into-array (map double-array [[1 2] [3 4]]))
试试这个:
(defn double-array-2d [coll]
(let [w (count coll)
h (apply max (map count coll))
arr (make-array Double/TYPE w h)]
(doseq [x (range w)
y (range h)]
(aset arr x y (double (get-in coll [x y]))))
arr))