给定两个嵌套向量x和y,其中x是
(def x [[1 2] [3 4]])
和y是
(def y [[5 6] [7 8]])
如何沿着数组连接嵌套向量x和y由附加输入d指定的维度?
即,给定x,y和d = 1,样本输出将是:
[[1 2] [3 4] [5 6] [7 8]]
其中y成为新嵌套向量的第三行和第四行。
对于d = 1,我试过
(vec (concat [[1 2] [3 4]] [[5 6] [7 8]].
如果d = 2且初始x和y,则样本输出为:
[[1 2 5 6] [3 4 7 8]]
这是我最不确定的情况。
在d = 3的情况下,x和y将保持不变,因为它们是2 x 2.因此,x和y将不受影响地输出。
答案 0 :(得分:1)
core.matrix库非常适合沿任意维度切割矩阵:
project.clj:
(defproject hello "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]
[net.mikera/core.matrix "0.18.0"]]
:source-paths ["dev"])
您好/ matric.clj:
(ns hello.matrix
(:refer-clojure :exclude [* - + == /])
(:use [clojure.core.matrix]
[clojure.core.matrix.operators]
[clojure.pprint]))
(def x (matrix [[1 2] [3 4]]))
(def y (matrix [[5 6] [7 8]]))
(def xy (matrix [x y]))
(pprint (slices xy 0))
(pprint (slices xy 1))
(pprint (slices xy 2))