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.