重塑嵌套向量

时间:2013-12-27 18:50:34

标签: clojure clojure-contrib

给定嵌套向量A,即3 x 4矩阵

[[1 4 7 10] [2 5 8 11] [3 6 9 12]]

变换A使嵌套向量(矩阵)现在为2 x 6.

输出看起来像

[[1 3 5 7 9 11] [2 4 6 8 10 12]]

到目前为止,我仍然坚持这个想法的开始实施。

2 个答案:

答案 0 :(得分:2)

您可能需要查看core.matrix

;; using [net.mikera/core.matrix "0.18.0"] as a dependency
(require '[clojure.core.matrix :as matrix])

(-> [[1 4 7 10] [2 5 8 11] [3 6 9 12]]
  (matrix/transpose)
  (matrix/reshape [6 2])
  (matrix/transpose))
;= [[1 3 5 7 9 11] [2 4 6 8 10 12]]

答案 1 :(得分:2)

此函数会将m整形为由具有所需形状的子向量组成

(reshape [1 [2 3 4] 5 6 7 8] 2 2) => [[[1 2] [3 4]] [[5 6] [7 8]]]

示例:

select value , rank from (
SELECT value, 
       @rownum := @rownum + 1 AS rank
  FROM Datas, 
       (SELECT @rownum := 0) r
       ) a where value IN (20,10,50,100,40)