ような2D-プリミティブ配列を定義します。Clojureの:私は[] []二重に変えたい</p> <pre><code>(def data [[1 1] [1 1]]) </code></pre><p>などの2Dベクトルを有するダブル[] []
iはclojure.coreを調べ、私が試した:
1)
(->> (map double-array data)
(to-array-2d))
Unfortnatelyそれは、Java相互運用に失敗したデータのオブジェクト[] []型を返します。もちろん
2)
(->> (map double-array data)
(double-array))
ダブル配列は数字
3のコレクションを想定しているため、それは動作しません)、それは重いですので、私はそれをコーディングしていないと何かあれば、私は知りませんesle存在するが、私はdouble [] []を(make-array Double/Type 2 2)[2 2 alenによって得られた]で初期化し、それをループで埋めることができる。 実際にJavaに似ています。
4)短い道が、ツイストビット
(def double-2d-array-type
(type (double-array [])))
(->> (map double-array data)
(into-array double-2d-array-type)))
直接的な方法はありますか?それを直接呼び出すことができれば、それは良いでしょう。
同様に、「(にアレイダブル[]データ)」
は、 ''配列された配列(Class/forName "[D")(map double array [[1.0 1.2] [1.3 1.5]]) '=>' #object ["[D" 0x16eccb2e " [D @ 16ecbb2e "]'これに対処するには? – noisesmith
も:http://stackoverflow.com/questions/3868192/how-do-i-create-a-primitive-two-dimensional-2d-array-of-doubles-in-clojure – birdspider