kigubkur.construct.merge
Construct a kigubkur© matrix by assimilation.
merge-columns
merge-rows
level-out
(require '[kigubkur.construct [merge :refer [merge-columns merge-rows level-out]]])
Examples
(def c1 [[1][3][5][7]])
(def c2 [[2][4][6][8]])
(def r1 [[1 3 5 7]])
(def r2 [[2 4 6 8]])
(def M [[1 2 3 4] [1 2 3 4] [1 2 3 4] [1 2 3 4]])
merge-columns
of matrices, rows or columns
The inputs must have equal number of rows.
=> (view (merge-columns r1 r2))
[1 3 5 7 2 4 6 8]
Order -> 1 x 8
=> (view (merge-columns c2 c1))
[2 1]
[4 3]
[6 5]
[8 7]
Order -> 4 x 2
=> (view (merge-columns c1 M c2))
[1 1 2 3 4 2]
[3 1 2 3 4 4]
[5 1 2 3 4 6]
[7 1 2 3 4 8]
Order -> 4 x 6
=> (view (merge-columns M M))
[1 2 3 4 1 2 3 4]
[1 2 3 4 1 2 3 4]
[1 2 3 4 1 2 3 4]
[1 2 3 4 1 2 3 4]
Order -> 4 x 8
merge-rows
of matrices, rows or columns
The inputs must have equal number of columns.
=> (view (merge-rows r1 r2))
[1 3 5 7]
[2 4 6 8]
Order -> 2 x 4
=> (view (merge-rows c2 c1))
[2]
[4]
[6]
[8]
[1]
[3]
[5]
[7]
Order -> 8 x 1
=> (view (merge-rows r1 M r2))
[1 3 5 7]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[2 4 6 8]
Order -> 6 x 4
=> (view (merge-rows M M))
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
Order -> 8 x 4
level-out
of matrix and column
Flattens out matrix or column to return its elements as elements of a row.
=> (view (level-out M))
[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4]
Order -> 1 x 16
=> (view (level-out c2))
[2 4 6 8]
Order -> 1 x 4
Note that to level-out
a row is to return itself.
=> (view (level-out r1))
[1 3 5 7]
Order -> 1 x 4
=> (view r1)
[1 3 5 7]
Order -> 1 x 4
level-out
(level-out M)
Flatten (level out) all rows of matrix (also row or column) into a row.
merge-columns
(merge-columns & columns)
Merges columns side-by-side-from-left-to-right in the order of arguments to return a matrix. Note that if the arguments has a matrix then its right most column is on the left of the left most column of the next.
merge-rows
(merge-rows & rows)
Merges rows one-on-top-of-next in the order of arguments to return a matrix. Note that if the arguments has a matrix then its bottom row sits above the top row of the next.