将 Java class 转换为向量 - Clojure
Convert Java class to vector - Clojure
我是 clojure 和函数式编程的新手,我需要将 Java class org.apache.commons.math3.linear.OpenMapRealMatrix
转换为 clojure 向量。
这怎么可能?
很难给出直接答案,因为从二维矩阵转换为一维向量涉及选择如何遍历矩阵。如果我们选择从左到右从上到下,一种方法看起来像这样:
(->> (for [r (range 0 (.getRowDimension matrix))]
(vec (.getRow matrix r)))
flatten
vec) ;; this step is optional
或者如果你只有一行,那么你可以调用 (vec (.getRow matrix 0))
如果你想保留二维矩阵,下面的代码就可以了:)
(mapv #(vec (.getRow matrix %))
(range (.getRowDimension matrix)))
我是 clojure 和函数式编程的新手,我需要将 Java class org.apache.commons.math3.linear.OpenMapRealMatrix
转换为 clojure 向量。
这怎么可能?
很难给出直接答案,因为从二维矩阵转换为一维向量涉及选择如何遍历矩阵。如果我们选择从左到右从上到下,一种方法看起来像这样:
(->> (for [r (range 0 (.getRowDimension matrix))]
(vec (.getRow matrix r)))
flatten
vec) ;; this step is optional
或者如果你只有一行,那么你可以调用 (vec (.getRow matrix 0))
如果你想保留二维矩阵,下面的代码就可以了:)
(mapv #(vec (.getRow matrix %))
(range (.getRowDimension matrix)))