简体   繁体   English

将Java类转换为向量-Clojure

[英]Convert Java class to vector - Clojure

I am new to clojure and functional programming and I need to convert Java class org.apache.commons.math3.linear.OpenMapRealMatrix to clojure vector. 我是Clojure和函数式编程的新手,我需要将Java类org.apache.commons.math3.linear.OpenMapRealMatrix转换为clojure向量。

How Is it possible to do that? 如何做到这一点?

If you want to keep two dimensional matrix, just below code is fine :) 如果要保留二维矩阵,则下面的代码就可以了:)

(mapv #(vec (.getRow matrix %))
        (range (.getRowDimension matrix)))

It's hard to give a direct answer because converting from two dimensional matrix to a one dimensional vector involves choosing how to iterate over the matrix . 很难给出直接答案,因为从二维矩阵转换为一维向量涉及选择如何对矩阵进行迭代 If we choose left to right top to bottom one approach would look something like this: 如果我们选择从左到右从上到下,则一种方法如下所示:

(->> (for [r (range 0 (.getRowDimension matrix))]
       (vec (.getRow matrix r)))                 
     flatten                                       
     vec)       ;; this step is optional

Or if you only have one row then you could just call (vec (.getRow matrix 0)) 或者,如果只有一行,则可以调用(vec (.getRow matrix 0))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM